WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Round Funktion

 

Sven198522

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2015, 18:20     Titel: Round Funktion
  Antworten mit Zitat      
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

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 26.09.2015, 00:16     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2015, 10:18     Titel:
  Antworten mit Zitat      
Ü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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.09.2015, 12:07     Titel: Re: Round Funktion
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Sven198522

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2015, 16:28     Titel:
  Antworten mit Zitat      
Danke für die ANtworten. Ok Jan ich werde das mal googeln.
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.