|
|
if == Wert wird manchmal nicht erkannt |
|
Sommer1980 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 19:35
Titel: if == Wert wird manchmal nicht erkannt
|
 |
Hey ihr da draußen!
ich habe eine schleife, die abbrechen soll solange ein bestimmter wert erreicht ist. und manchmal erkennt er den wert nicht, obwohl dieser richtig ist. was kann ich da machen?
Danke
|
|
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 19:49
Titel:
|
 |
Bitte Code hinstellen und die Fehlermeldung mit angeben. So kann das Problem einfacher erkannt werden.
_________________
Simulation
|
|
|
Sommer1980 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 19:56
Titel:
|
 |
Das ist kein fehler direkt: ich hab im Programm eine Variable, die sich ändert und wenn ihr wert eben 2.5 ist, dann soll in der Schleife was gemacht werden.
Manchmal wird bei der Variable eben 2.5 ausgegeben, aber das Programm springt nicht in die Schleife. Das hat glaub ich mit dem Zahlenfoprmat was zu tun, oder?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 19:57
Titel:
|
 |
Hallo,
eine Vermutung ohne Code: die Werte sind nur bis zu einer bestimmten Toleranz gleich, aber doch verschieden. Es kann helfen, statt auf Gleichheit auf bestimmte Abweichung zu testen.
Statt if x == y also if abs(x-y) < tol.
Grüße,
Harald
|
|
|
Sommer1980 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 20:03
Titel:
|
 |
if a >= 2.5
.
.
.
end
und dann springt er nicht in diese schleife, obwohl wenn ich a ausgebe 2.5 angezeigt wird
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 20:15
Titel:
|
 |
Hallo,
wieso denn nun >= ?
Und ja: 2.4999995 wird z.B. als 2.5000 angezeigt. Kannst es ja mal mit format long probieren. Ansonsten siehe oben.
Grüße,
Harald
|
|
|
Sommer1980 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 20:18
Titel:
|
 |
Hab vergessen, dass im Programm >= ist und nicht nur ==.
|
|
|
Sommer1980 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 21:14
Titel:
|
 |
irgendwie weiß ich nicht wie ich das wegen des >= machen soll.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.06.2010, 21:23
Titel:
|
 |
Hallo,
ich hab eigtl schon 2 Mal erklärt, worin das Problem liegt: Zahlen, die kleiner als 2.5 sind, werden im Standardformat gerundet als 2.5000 angezeigt. Das liegt also wenn an der gerundeten Anzeige, nicht an einer fehlerhaften Abfrage.
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.
|
|