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

NaNs am effizientesten entfernen

 

atzplzw
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2008, 20:34     Titel: NaNs am effizientesten entfernen
  Antworten mit Zitat      
Hi!

Ich habe X Zeit und Y Wert. Beim Y können schon auch mal viele NaNs vorkommen.
Wie kann ich am effizientesten die NaNs rausfiltern?
Am besten wäre es man bekommt ein struct mit Zeit + Wert ohne NaN...


Danke für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2008, 22:34     Titel:
  Antworten mit Zitat      
Hallo,

mit
Code:
erhälst du die sogenannten logischen indizes einer matrix (sprich die selbe Matrix wieder, mit 0 ungleich NaN und 1 gleich NaN). Entfernen kannst du werte, indem du ihnen eine leere, eckige Klammer zuweist.

Code:
% die Stellen wo in Y NaNs auftauchen, werden in X gelöscht
X(isnan(Y))=[];
% idem für Y
Y(isnan(Y))=[];


Wie man nun eine Struktur anlegt, steht unter
Code:
.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
atzplzw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 20.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 14:02     Titel:
  Antworten mit Zitat      
OK! Danke das geht.

Nun möchte ich aber "zusammenhängende" Werte rausfinden, also splitten. Mit einer for Schleife hab ich das schon hinbekommen, nur ist das zu langsam.

Ich kann ja mit isnan einen Index erstellen und dann mit find den ersten Wert finden.

Code:

notNaNIndex = ~isnan(Values);
iMin = find(notNaNIndex, 1, 'first');
 


Nur wie finde ich das Ende, also das nächste 0 im Index. Mit find geht nur die Letzte?


Danke!
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 - 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.