WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

NaN in Matrix beim interpolieren ignorieren?

 

Seer
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 15.05.2012, 10:58     Titel: NaN in Matrix beim interpolieren ignorieren?
  Antworten mit Zitat      
Hallo,
ich habe eine *.csv Datei, die die Punkte eines digitalisierten Diagramms beschreibt. Die erste Spalte steht für die X-Koordinate, die Spalten 2:8 enthalten die jeweils zugehörigen Y-Koordinaten von 7 verschiedenen Kurven.
Nun ist es aber so, dass die Kurven nicht immer am selben X-Wert ausgewertet wurden. Dass hat zur Folge, dass ich für die Y-Werte von den Kurven, die nicht an dieser Stelle betrachtet wurden ein NaN in der Matrix stehen habe. Beim Plotten macht das auch keine Probleme, da werden die NaN's einfach ignoriert. Ich möchte mir nun aber Zwischenwerte interpolieren und hier bekomme ich Probleme mit den NaN's: Meine Interpolation liefert mir immer NaN als Ergebnis.
Gibt es eine Möglichkeit der Interpolationsfunktion zu sagen, dass sie NaN werte einfach überspringen soll?

Zur Veranschaulichung ein Ausschnitt meiner Matrix:

0.0080 41.1619 NaN NaN NaN NaN NaN NaN
0.0081 NaN 34.7791 NaN NaN NaN NaN NaN
0.0082 NaN NaN 29.2911 NaN NaN NaN NaN
0.0083 NaN NaN NaN 24.5188 NaN NaN NaN
0.0084 NaN NaN NaN NaN 20.4028 NaN NaN
Private Nachricht senden Benutzer-Profile anzeigen


Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2012, 17:18     Titel:
  Antworten mit Zitat      
Hallo Seer,

da die Interpolation sowieso getrennt für die 7 Kurven gemacht wird, einfach
die NaN-Werte entfernen:
Code:

x=mat(isfinite(mat(:,k)),1); % mit k=2,3,...
y=mat(isfinite(mat(:,k)),k);
 


Grüße
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
Seer
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 16.05.2012, 08:15     Titel:
  Antworten mit Zitat      
Danke, hat funktioniert!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.