|
|
Alle NaN in allen Variablen im WS mit Null ersetzen |
|
Supertyp |

Forum-Fortgeschrittener
|
 |
Beiträge: 85
|
 |
|
 |
Anmeldedatum: 09.06.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014a
|
 |
|
|
 |
|
Verfasst am: 03.06.2016, 15:34
Titel: Alle NaN in allen Variablen im WS mit Null ersetzen
|
 |
Ich habe im Workspace einige hundert numerische Variablen, auch Structs mit diversen Feldern. In einigen sind NaN-Werte, die ich für die weitere Verarbeitung gern pauschal mit "0" ersetzen möchte, ohne jeweils einzeln den Variablennamen und Feldnamen von Structs zu übergeben, da es wie gesagt sehr viele sind. Die Variablenstruktur selber soll nicht geändert werden.
Kennt jemand eine Möglichkeit dazu?
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 04.06.2016, 22:18
Titel: Re: Alle NaN in allen Variablen im WS mit Null ersetzen
|
 |
|
 |
|
Hallo Supertyp,
Das klingt nach eine vollkommen chaotischen Daten-Organisation.
Einige hundert Variablen in einem Workspace? Hier beim Debuggen den Überblick zu behalten, ist sicherlich unmöglich.
Eine Methode zu erstellen, die pauschal in allen möglichen Variablen NaNs in NUllen ändert, ist zwar machbar, aber mit Sicherheit ein Riesenmurks. Wenn Nullen benötigt werden, sollten sie unbedingt beim Erzeugen der Variablen-Inhalte auch eingefügt werden, nicht erst magisch im Nachhinein.
Sorry für die klaren Worte. Aber das klingt eindeutig nach einem Punkt, bei dem man das bisherige Programm komplett überarbeiten sollte, in einzelne überschaubare Funktionen aufteilen und die Daten ordentlich strukturieren.
Man könnte sich mit
who
eine Liste aller Variablen besorgen und recursiv auch in Structs und Cells reinschauen, um die Daten zu ändern. Man müsste alle nicht-DOUBLE Werte ignorieren und aufpassen, dass man nicht auch die Variablen ändert, die zu der Methode gehören, die die Variablen ändert. Da ist aber Meta-Programming und ich rate dringend davon ab.
Gruß, Jan
|
|
|
Supertyp |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 85
|
 |
|
 |
Anmeldedatum: 09.06.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014a
|
 |
|
|
 |
|
Verfasst am: 06.06.2016, 09:55
Titel:
|
 |
Die Variablen kommen nicht aus einem selbst programmierten Modul, sondern per mdf-Import aus einer Inca Messdatei. Ich bin also unschuldig!
iese Messdaten dienen mir nur zum testen einer neuen Funktion. Daher möchte ich nicht zuviel Zeit auf das anpassen der Daten verwenden und spekuliere auf eine Quick & Dirty Lösung, die vielleicht schon mal jemand gemacht hat.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 06.06.2016, 22:13
Titel:
|
 |
Hallo Supertyp,
Ich möchte ja auch nicht nur Dich erschrecken, sondern auch die anderen Leser :-)
Womit importierst Du die Files? Liegen sie wirklich als einzelne Variablen vor oder kann man sie nicht in ein Struct schreiben?
Gruß, Jan
|
|
|
Supertyp |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 85
|
 |
|
 |
Anmeldedatum: 09.06.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014a
|
 |
|
|
 |
|
Verfasst am: 07.06.2016, 09:12
Titel:
|
 |
Ich importriere die Daten mit dem Tool "mdfimport" (MatlabCentral). Die Daten packe ich dann mit folgender Funktion in ein Struct:
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 07.06.2016, 15:47
Titel:
|
 |
Hallo Supertyp,
Ich finde mehrere Submissions zu diesem Ausdruck. Bitte gibt den Link zu der verwendeten Funktion an und poste die Code-Zeile, mit der Du sie aufrufst. Es wäre praktisch, wenn sie gleich einen Struct zurückliefern würde, statt den Workspace wild mit Variablen zu fluten.
Gruß, Jan
|
|
|
Supertyp |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 85
|
 |
|
 |
Anmeldedatum: 09.06.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014a
|
 |
|
|
 |
|
Verfasst am: 07.06.2016, 15:55
Titel:
|
 |
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 07.06.2016, 16:20
Titel:
|
 |
Hallo Supertyp,
Ui, das ist aber eine wirklich brutale Funktion. Hier wird GUI und Import-Code wild vermixt und das ferngesteuerte Erzeugen der Variablen ist ein schlechter Ansatz, der genau so vertrackte Nachbearbeitungen erforderlich macht.
Aber Du hast nun die Variablen in einem Struct liegen richtig? Dann:
Bitte debuggen - ich habe gerade kein Matlab zur Verfügung.
Gruß, Jan
|
|
|
Supertyp |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 85
|
 |
|
 |
Anmeldedatum: 09.06.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014a
|
 |
|
|
 |
|
Verfasst am: 08.06.2016, 08:14
Titel:
|
 |
Mille Grazie!
|
|
|
|
|
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 - 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.
|
|