|
Sven198522 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.09.2015, 18:20
Titel: Round Funktion
|
 |
Hallo ,
ich habe die matlab version R2012a. Dort gibt es nur die verkürzte Version von "round" (also: round(x)=).
Ich würde gerne auf 4 Stellen nach dem Komma gerundet haben. Wenn ich mit format short arbeite kommen trotzdem in meinem Code Zwischenergebnisse wie 0.3423e-12.
Weiß einer ob man da irgendwie einzelne Funktionen irgendwie erwerben kann auf einem Portal oder so?
Danke.
(klar könnte jdes Ergebnis zwischendurch erst mit 1000 multipl. dann round(x)=....und dann wieder durch 1000 teilen - das ist aber etwas aufwändig und komplex dafür finde ich)
Es wäre besser ich könnte mit der vollen Funktion (Y = round(X,N,type)) arbeiten.
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 26.09.2015, 00:16
Titel:
|
 |
Zitat: |
(klar könnte jdes Ergebnis zwischendurch erst mit 1000 multipl. dann round(x)=....und dann wieder durch 1000 teilen - das ist aber etwas aufwändig und komplex dafür finde ich) |
ich finde das garnicht so komplex.sind ja nur zwei operationen mehr. und sehr aufwändig ist das ja auch nicht.
Zitat: |
Es wäre besser ich könnte mit der vollen Funktion (Y = round(X,N,type)) arbeiten. |
dann schreib dir doch so eine funktion die das so macht wie du willst.
_________________
richtig Fragen
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.09.2015, 10:18
Titel:
|
 |
Überlege einfach kurz, was der Rechner, der ja Binär rechnet, anstellen muss, um eine Fließkommazahl im Dezimalsystem zu runden. Und schon sind eine zusätzliche Multiplikation und Division gar nicht mehr so komplex...
Und wenn es Dir einfach zu viel Schreibarbeit ist, dann wirklich eine Funktion schreiben.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 26.09.2015, 12:07
Titel: Re: Round Funktion
|
 |
|
 |
|
Hallo Sven198522,
Nein, man kann die neue Version von
round
nicht einfach dazukaufen. Aber man kann sie leicht selbst schreiben.
Natürlich ist das Multiplizieren, Runden und Dividieren mit etwas Aufwand verbunden. Aber genau das geschieht in der neuen
round
Version ja ebenfalls. Der Rechner kommt um diesen Aufwand nicht herum.
Zitat: |
Wenn ich mit format short arbeite kommen trotzdem in meinem Code Zwischenergebnisse wie 0.3423e-12. |
Das
format short
biezieht sich nur auf die Ausgabe im Command-Window. Es hat nichts mit den Werten der Zahlen zu tun. Wenn Du die Darstellung exkt beeinflussen möchtest, verwende
fpintf
oder
sprintf
.
Zitat: |
(klar könnte jdes Ergebnis zwischendurch erst mit 1000 multipl. dann round(x)=....und dann wieder durch 1000 teilen - das ist aber etwas aufwändig und komplex dafür finde ich) |
Das Programmieren der erforderlichen Funktion würde nur unwesentlich länger dauern als diesen Satz zu schreiben. Die Gesamtlaufzeit der Funktion wäre sicherlich kürzer als das Schreiben dieser Frage und das Lesen der Antworten, selbst wenn Du da Milliarden von Zahlen durchjagst.
Insofern ist die Frage des Aufwands eher relativ.
Es gibt ein weiteres Problem: Die meisten Dezimalzahlen (mathematisch korrekt ausgedrück: "fast alle") haben keine exakte Darstellung im Binäre-System. Man kann also nach dem Runden auf 4 Stellen nicht erwarten, dass an der 15.ten Stelle nach dem Komma nicht doch irgendwelche von Null verschiedenen Ziffern kommen. Die DOUBLEs werden nach dem IEEE754 Modell gespeichert, so dass nur 53 Bits für die Mantisse zur Verfügung stehen. Bei Bedarf kannst Du die Ausdrücke in eine Internet-Suchmaschine eingeben.
Gruß, Jan
|
|
|
Sven198522 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.09.2015, 16:28
Titel:
|
 |
Danke für die ANtworten. Ok Jan ich werde das mal googeln.
|
|
|
|
|
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.
|
|