Verfasst am: 25.09.2013, 12:02
Titel: Rückgabewert einer Berechnung immer als ganze Zahl
Hallo alle zusammen,
ich habe mal wieder ein Problem. In meinem GUI lass ich einen Wert berechnen, den ich anschließend extern weiter verarbeite.
Jetzt zu meinem Problem: Ich benötige den berechneten Wert immer als ganze Zahl und nicht in expontieller Schreibweise. Das Kuriose an der Sache ist, dass Matlab mit den Wert mal so und mal so zurückgibt.
Beispiel:
12345 korrekt
1,2345e+005 falsch (o.ä)
Hat jemand eine Idee, wie ich das Problem lösen kann?
wie die zahl gespeichert wird und wie sie dir im command window oder so angezeigt wird sind 2 paar schuhe. die beiden von dir geposteten zahlen sollten sich bei berechnungen gleich verhalten. warum kannst du damit nicht weiter arbeiten?
ausgabe im commandwindow läst sich mittels
wenn es Dir nur um die Anzeige in Deinem GUI geht, dann würde ich den Wert für die Anzeige einfach mit num2str() in einen String umwandeln. Bei der externen Weiterverarbeitung musst Du dann natürlich den Datentyp beachten. Wie wird der Wert denn für die Weiterverarbeitung ausgelesen/übergeben?
Verfasst am: 25.09.2013, 12:13
Titel: Re: Rückgabewert einer Berechnung immer als ganze Zahl
Hallo FelixF,
12345 und 1.2345e5 ist aber doch genau die gleiche Zahl. Nur die Darstellung im Command Window ist unterschiedlich. Aber die kann man mit dem FORMAT Befehl nach Belieben anpassen. Siehe "help format".
Eine Berechnung, die als Inputs Integer Werte hat, kann wegen der Rundungsfehler nicht-integer Werte als Output haben. Wenn es also wirklich auf die Ganzzahligkeit ankommt, verwende ROUND().
Das es die gleiche Zahl ist weiß ich. Da ich diese Zahl aber an einem Kontroller schicken muss, der keine exponentielle Schreibweise versteht, muss die Zahl als ganze Zahl übergeben werden.
Mit round lass ich die Zahl bereits runden, somit bekomme ich keine Kommastellen. Allerdings hilft das nicht gegen die exp. Schreibweise.
ich bin mir nicht sicher ob man die exponentielle Schreibweise so wegbekommt. Matlab ist da echt hartnäckig. Wenn es bis jetzt noch nicht geklappt hat, dann versuch doch mal das:
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
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.