|
Katharina |
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 21.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 09.09.2008, 10:35
Titel: 0,3 ist nicht gleich 0,3
|
|
Hallo!
Hatte irgendjemand schon mal das Problem, dass Matlab bei einer if-Abfrage nicht erkannt hat, dass zwei Werte gleich sind, obwohl sie gleich sein sollten???
In einer Schleife werden Werte aus Vektoren verglichen. Der eine Vektor wird einfach angelegt über
x=0:0.1:1
und der andere Vektor wurde vorher über die Funtkion
y=round(zweiter_vektor.*100)/100;
auf zwei Nachkommastellen gerundet.
Nun beträgt die Differenz x-y, die eigentlich null sein sollte, 5.5511e-017 (übrigens nur bei dem Wert 0,3, alle anderen sind in Ordnung)!
Weiß jemand, warum???
Vielen Dank!
Gruß,
Katharina
|
|
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.028
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 09.09.2008, 11:57
Titel:
|
|
Was sind denn die Werte von "zweiter_vektor"?
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Katharina |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 21.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 09.09.2008, 12:30
Titel:
|
|
Also, der Vektor "zweiter_Vektor" stammt eigentlich aus einer Tabelle (erste Spalte), wurde aber ebenfalls erstellt über 0:0.01:1. Das runden wird also im wesentlichen für die Werte IN der Tabelle durchgeführt, aber dieser Vektor wird natürlich mitgerundet.
Immer, wenn die Werte von x und y übereinstimmen, soll etwas mit den Werten in der Tabelle passieren, was hier nicht relevant ist.
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 09.09.2008, 12:36
Titel:
|
|
Hallo Katharina,
schau mal hier:
http://www.gomatlab.de/viewtopic,p,1115.html#1115
Das wesentliche steht im zweiten Post: 0.1 ist im Dualsystem, das dem Rechner zugrundeliegt, eine periodische Zahl. Auch eine Lösung findet sich dort.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Katharina |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 21.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 09.09.2008, 12:49
Titel:
|
|
Vielen Dank, Bijick, das ist genau das, was ich wissen wollte! Wusste halt nur nicht genau, wonach ich im Forum suchen sollte, sonst wär ich vielleicht schon drauf gestoßen...
|
|
|
|
|
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 - 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.
|
|