|
|
Falsches Ergebnis bei if else Anweisung (Variablenvergleich) |
|
Hans-Peter |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.01.2011, 15:31
Titel: Falsches Ergebnis bei if else Anweisung (Variablenvergleich)
|
 |
Hallo,
ich bin über folgende Problematik gestoßen und formuliere es mal ganz allgemein:
Ich habe zwei Aufgaben. Jedes Ergebnis wird einer Variablen zugeordnet (Ergebnis1 und Ergebnis2). Jetzt sollen beide Variablen verglichen werden und je nachdem welcher Vergleich richtig ist, wird das Resultat im Command Window angezeigt.
Hier der Quelltext:
Bei mir (Matlab 2010b) erscheint "Ergebnis 1 > Ergebnis 2", obwohl beide Ergebnisse exakt gleich sind. Wie kann das sein? Und welche Alternativen gibt es für diesen Vergleich?
Schonmal vielen Dank für die Hilfe!!!
|
|
|
|
|
_Peter_ |

Moderator
|
 |
Beiträge: 537
|
 |
|
 |
Anmeldedatum: 08.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.10, 2010a
|
 |
|
|
 |
|
Verfasst am: 11.01.2011, 15:38
Titel:
|
 |
Hallo Hans-Peter,
Matlab zeigt dir zwar an, dass beide Werte gleich sind, rechnet aber intern mit dem exakten Wert weiter.
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Hans-Peter |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.01.2011, 16:09
Titel:
|
 |
Hallo Peter,
vielen Dank für die schnelle Antwort. Ich weiß zwar nicht was es mit dem "exakten" Wert gemeint ist (weil mit dem Taschenrechner wird auch 18.7 angezeigt) ... aber wie kann ich dieses Problem denn am besten umgehen, denn für die if-else-Anweisung benötige ich den Vergleich mit dem "normalem" Ergebnis ... also wie kann unterdrücken(?), dass Matlab mit seiner Interpretation der Rechnung die Werte vergleicht??
Hast du dafür vielleicht einen Vorschlag?
|
|
|
_Peter_ |

Moderator
|
 |
Beiträge: 537
|
 |
|
 |
Anmeldedatum: 08.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.10, 2010a
|
 |
|
|
 |
|
Verfasst am: 11.01.2011, 17:09
Titel:
|
 |
Matlab rechnet bei float Wert mit einer Toleranz. (Wie die inneren Zusammenhänge dabei sind kann ich dir leider nicht sagen)
Wie du an meinem Code oben siehst, bekommst du alle (15) Stellen angezeigt mit dem Befehl
Abhilfe würde das runden schaffen.
Beispielsweise:
die '100' bestimmen auf wieviele Nachkommastellen gerundet werden soll, weil der Befehl 'round' auf den nächsten Integer Wert rundet.
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Hans-Peter |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.01.2011, 17:12
Titel:
|
 |
Vielen Dank!!! Das hat super geklappt.
|
|
|
|
|
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.
|
|