|
Peter P. |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.01.2015, 13:01
Titel: For-Schleife bis NaN
|
 |
Hallo zusammen,
ich habe das Problem, dass meine for-schleife bis zu den Einträgen laufen soll, die mit NaN deklariert sind.
Leider funktioniert diese Anweisung nicht. Kann mir jmd. weiterhelfen?
Grüße und Danke
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.01.2015, 13:23
Titel:
|
 |
Hallo,
verwenden.
Alternativ vor der for-Schleife mit isnan schauen, wo das erste NaN ist, und nur bis dorthin laufen.
Grüße,
Harald
|
|
|
Peter P. |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.01.2015, 14:18
Titel:
|
 |
Gibt es denn noch eine Möglichkeit, dies direkt in die Schleife zu implementieren, ohne isnan?
Z.B. die Schleife bis zur letzten Zahl laufen zu lassen?
|
|
|
AndyAndyAndy |

Forum-Anfänger
|
 |
Beiträge: 44
|
 |
|
 |
Anmeldedatum: 22.12.14
|
 |
|
 |
Wohnort: Nähe Offenburg
|
 |
|
 |
Version: GNU Octave 4.1.0+
|
 |
|
|
 |
|
Verfasst am: 03.01.2015, 14:52
Titel:
|
 |
Peter P. hat Folgendes geschrieben: |
Gibt es denn noch eine Möglichkeit, dies direkt in die Schleife zu implementieren, ohne isnan?
Z.B. die Schleife bis zur letzten Zahl laufen zu lassen? |
Du kannst vorher das erste Auftreten von NaN bestimmen
[code]
tmp = find (isnan (V_A), 1) - 1;
[code]
und dann deine Schleife nur bis tmp laufen lassen. Ohne mit etwas mehr Informationen rüberzukommen, was dir an Haralds Lösung nicht gefällt, wird es schwierig dir zu helfen.
Btw, außerdem ist so gut wie jede Aufgabe vektorisierbar, d.h. ohne for-schleife lösbar.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.01.2015, 16:31
Titel:
|
 |
Hallo,
grundsätzlich liefern Vergleiche mit NaN über == oder ~= immer false.
Man muss also in irgendeiner Form mit isnan arbeiten.
Grüße,
Harald
|
|
|
Peter P. |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.01.2015, 20:41
Titel:
|
 |
Hallo Andy & Harald,
danke für den Tipp mit dem vektorisieren!
Ich wollte die Toolgröße nicht unbedingt noch weiter aufbauen, dennoch muss es auf verschiedene, weitere Anwendungen passen, weswegen ich nicht einfach die Lösung nur einmal durchlaufen lassen kann. Ich habe es jetzt etwas anders gelöst, weil ich auch Vektoren in meiner Matrix habe, die nicht NaN sind.
Das funktioniert leider auch nicht so recht, anscheinend geht er sofort auf else über. Habe ich noch etwas übersehen?
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.01.2015, 23:04
Titel:
|
 |
Hallo,
du vergleichst momentan den Index des ersten NaN-Elements mit 1.
Vermutlich möchtest du
Grüße,
Harald
|
|
|
|
|
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.
|
|