|
|
Mehrere NaN´s in einem Vektor interpolieren |
|
Mayhem8000 |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 02.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.07.2019, 14:17
Titel: Mehrere NaN´s in einem Vektor interpolieren
|
|
Hallo an alle,
ich bin neu in MatLab und muss für meine Abschlussarbeit mit MatLab Daten auswerten.
Es handelt sich um eine optische Vermessung. Ich habe 3 Vektoren (X,Y,Z) jeder Vektor ist ca. 3,5 Mio Zeilen lang.
Bei der optischen Vermessung konnte nicht für jeden X und Y Wert ein Z-Wert gemessen werden. In diese Zeile wurde ein NaN eingetragen. Oft sind es mehrere NaN´s hintereinander.
Ich habe leider nichts passendes gefunden bisher. Die Frage ist wie ich es schaffe das ich die NaN´s interpolieren kann. Am besten wäre eine lineare Interpolation.
Ich hoffe das ihr mir hier helfen könnt!
Mit vielen Grüßen
Mayhem8000
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 03.07.2019, 11:20
Titel: Re: Mehrere NaN´s in einem Vektor interpolieren
|
|
Hallo Mayhem8000,
Man kann eine passende Lösung finden, wenn man eine Internet-Suchmaschine nach "matlab fill nan in matrix" fragt.
Das gefundene
fillmissing
passt allerdings nur, wenn die X- und Y-Werte eine Matrix beschreiben. Ob sie das tun, wäre klar, wenn du einen kleinen Beispiel-Datensatz zur Verfügung stellen würdest.
interp2
könnte zu deinen Daten passen. schaue mal in die Dokumentation.
Gruß, Jan
|
|
|
Mayhem8000 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 02.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.07.2019, 06:45
Titel:
|
|
Hallo Jan,
danke für die schnelle Antwort.
Ich würde gerne nur meinen Vektor Z interpolieren da ich diesen auch einzeln in mein Skript lade.
Ich muss dafür ja auch diesen Vektor Zeile für Zeile anschauen in einer Art Schleife und jeden NaN dann interpolieren. Oder habe ich hier ein Denkfehler?
Ich bin mir leider auch nicht sicher wie ich diese Schleife am besten aufbaue.
Gruß
Mayhem8000
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 04.07.2019, 12:21
Titel:
|
|
Hallo Mayhem8000,
Zitat: |
Ich muss dafür ja auch diesen Vektor Zeile für Zeile anschauen in einer Art Schleife und jeden NaN dann interpolieren. |
Hattest du meine Antwort gelesen?
Wenn du ein paar (kleine) Beispiel-Daten postest, wird klar, in welchem Format die Daten vorliegen und ob
fillmissing
oder
interp2
besser geeignet ist. Dann könnte man dir auch einen Beispielcode schreiben.
Zitat: |
Ich bin mir leider auch nicht sicher wie ich diese Schleife am besten aufbaue. |
Am besten verwendest du die bereits vorhandenen und getesteten oben genannten Tools.
Gruß, Jan
|
|
|
Mayhem8000 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 02.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.07.2019, 13:55
Titel:
|
|
Hallo,
sodele im Anhang ist ein Beispiel wie die Daten aufgebaut sind.
ich der Datei selber sind Messwerte die nicht gemessen werden konnten mit *** eingetragen. Wenn ich diese importiere dann werden die durch NaN ersetzt.
Von links nach rechts sind die Werte die X,Y,Z-Achse. Wie gesagt geht es Primär um den rechten Vektor der die fehlenden Messwerte enthält.
Gruß
Mayhem8000
Beschreibung: |
|
Download |
Dateiname: |
Beispieldaten.txt |
Dateigröße: |
205.32 KB |
Heruntergeladen: |
362 mal |
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 08.07.2019, 12:15
Titel:
|
|
Hallo Mayhem8000,
Mit
bekommst du die fehlenden Wert. Nun kannst du per
interp2
und
Data(~Miss, :)
die existierenden Werte als Input verwenden, und die fehlenden Werte interpolieren lassen. Probiere es mal aus und schreibe noch mal, falls es nicht funktioniert.
Gruß, Jan
|
|
|
|
|
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.
|
|