|
|
Interpolation in Zeitabschnitten |
|
HeikoNeuling |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.08.2013, 15:04
Titel: Interpolation in Zeitabschnitten
|
|
Hallo Leutz,
ich habe folgendes Problem.
Ich habe eine Messreihe aus der ich die Zeit und die Beschleunigungen zu der Jeweiligen habe. Das Problem ist allerdings das diese Werte nicht äquidistant abgetastet wurden. Für eine Auswertung benötige ich allerdings näherungsweise alle Werte zu jeder beliebigen Zeit.
Demzufolge müssen die Fehlenden interpoliert werden. Die Interpolation soll nur in gewissen Zeitabschnitten stattfinden, da die Beschleunigungsverläufe über die Zeit unterschiedlich stark ausschlagen.
Nun ist die Frage wie lege ich die Zeitbereiche fest und welchen Befehl verwende ich für die Interpolation.
Die Darstellung der Werte ist angehängt.
Beschreibung: |
|
Download |
Dateiname: |
Forenbild.png |
Dateigröße: |
8.05 KB |
Heruntergeladen: |
982 mal |
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 27.08.2013, 16:54
Titel: Re: Interpolation in Zeitabschnitten
|
|
Hallo HeikoNeuling,
Zitat: |
Die Interpolation soll nur in gewissen Zeitabschnitten stattfinden, da die Beschleunigungsverläufe über die Zeit unterschiedlich stark ausschlagen.
|
Was bedeutet das konkret? Um zu wissen, wie Du die Zeitbereiche festlegen musst, müssten man zunächst klären, nach welöchen Kriterien Du dies machen möchtest.
INTERP1 ist für die Interpolation geeignet.
Tipp:
Du könntest auch Deine favorisierte Internet-Suchmaschine nach "Matlab interpolate" fragen. goMatlab ist zwar ein tolles Forum, aber Google war mit 0.17 seconds ungeschlagen schneller.
Gruß, Jan
|
|
|
HeikoNeuling |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.08.2013, 08:48
Titel: Re: Interpolation in Zeitabschnitten
|
|
Nur zum Verständnis. Bei interp1 würde ich jede Wert und den darauf folgenden mit einer Gerade verbinden. Ich hab das mal versucht und bekomme leider einen Error.
Nun erscheint folgender Fehler.
_____________________________________________________
Error using griddedInterpolant
The grid vectors are not strictly monotonic increasing.
Error in interp1 (line 191)
F = griddedInterpolant(X,V,method);
_____________________________________________________
Das bedeutet nun was genau?
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 28.08.2013, 08:58
Titel: Re: Interpolation in Zeitabschnitten
|
|
Hallo HeikoNeuling,
Die Meldung bedeutet, dass die Werte der Variablen t nicht monoton setigen. Versuche mal:
Für eine Interpolation muss X monoton steigen, weil sich sonst nicht eindeutig bestimmen lässt, welche Punkte "benachbart" sind.
Gruß, Jan
|
|
|
HeikoNeuling |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.08.2013, 09:09
Titel: Re: Interpolation in Zeitabschnitten
|
|
Jan S hat Folgendes geschrieben: |
Hallo HeikoNeuling,
Die Meldung bedeutet, dass die Werte der Variablen t nicht monoton setigen. Versuche mal:
Für eine Interpolation muss X monoton steigen, weil sich sonst nicht eindeutig bestimmen lässt, welche Punkte "benachbart" sind.
Gruß, Jan |
Danke für die schnelle Antwort.
also issorted(t) -> ans =1
und any(diff(t) <= 0) -> ans =1
Würde ja bedeuten das t immer steigt, es aber irgendein t(i) gibt das Null ist. Und ich nehme mal an das darf nicht sein.
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 28.08.2013, 09:13
Titel:
|
|
kommt bei dir ein t doppelt vor? doppelte musst du dann rauswerfen.
_________________
richtig Fragen
|
|
|
HeikoNeuling |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.08.2013, 09:41
Titel: Re: Interpolation in Zeitabschnitten
|
|
Winkow hat Folgendes geschrieben: |
kommt bei dir ein t doppelt vor? doppelte musst du dann rauswerfen. |
Das Problem ist, dass t nicht äquidistant ist. Somit kommt es anscheinend vor das diff(t) ab und zu Null wird.
Nun hatte ich die Idee eine Matrix zu erstellen
U=[t,a,[0;diff(t]];
wie suche ich jetzt in dieser alle U(:,3) die gleich Null sind
und wenn diese Null sind dann lösche die komplette Zeile.
So das am Ende der Schleife ein U raus kommt ohne leere Zeilen und mit any(diff(t) <= 0); -> ans=0
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 28.08.2013, 09:45
Titel:
|
|
diff(t) wird 0 wenn 2 werte doppelt sind. wie ich bereits fragte. hat nix mit äquidistant zu tun.
_________________
richtig Fragen
|
|
|
HeikoNeuling |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.08.2013, 09:52
Titel: Re: Interpolation in Zeitabschnitten
|
|
Ok unique löscht also alle doppelten und sortiert t.
Nun hab ich aber den Fall das length(t)~=length(a) ist, da ja einige gelöscht wurden.
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 28.08.2013, 10:25
Titel:
|
|
die documentation von matlab ist sehr gut und es loht immer sich den befehl in der doc anzugucken. zu den rückgabe argumetnen von unique gehört auch der index.
_________________
richtig Fragen
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|