|
|
warum speichert matlab integers manchmal als festkommazahl? |
|
zeuS0r |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 25.11.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2011, 14:15
Titel: warum speichert matlab integers manchmal als festkommazahl?
|
|
hallo!
mein problem steht ja schon im titel beschrieben.
matlab speichert meinen vektor, der nur aus ganzen zahlen besteht, manchmal(!) in folgender form:
1.0e+003 * [ 0.882 0.883 0.884 etc. ]
anstatt eben
[ 882 883 884 etc. ]
ich könnte es durch round() z.b. beheben, würde somit aber rechenaufwand erzeugen, der eigentlich unnötig ist. hat jemand ne ahnung wie man das deaktiviert bzw. woran es liegt?
|
|
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 08.02.2011, 14:27
Titel:
|
|
Hallo
Wenn man dem Matlab nicht explizit den Datentyp vorgibt, nimmt
Matlab für die Zahlen standardmäßig den Datentyp Double an.
will man explizit Integer verwendet muss man das Matlab mittteilen
|
|
|
zeuS0r |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 25.11.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2011, 14:41
Titel:
|
|
das ist mir schon klar, ich verstehe nur nicht, warum matlab die ganzen double zahlen eben nur manchmal mit einer potenz angibt.
int32 kann ich nicht verwenden, da ich diesen vektor als x-werte für polyfit brauche und polyfit damit nicht klarkommt.
Zitat: |
Undefined function or method 'qr' for input arguments of type 'int16'.
|
mit round() geht's allerdings!
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 08.02.2011, 16:16
Titel:
|
|
denny hat den einen Teil schon beantwortet. Vielleicht ist der andere Teil nur eine Verständnisfrage, dass es um keine Änderung der numerischen Werte ist, sondern nur eine Sache der Darstellung.
Nach den hier vorliegenden Informationen würde ich also einfach sagen: Als DOUBLE lassen, mit POLYFIT arbeiten und ggf. (Zwischenergebnisse) geeignet formatiert ausgeben.
Andreas
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 08.02.2011, 23:51
Titel: Re: warum speichert matlab integers manchmal als festkommaza
|
|
Hallo zeuS0r,
Die Darstellung im Command-Window kann man mit dem FORMAT-Befehl beeinflussen, z.B.:
Wenn Du SPRINTF oder FPRINTF zur Ausgabe benutzt, hast du noch mehr Einstellmöglichkeiten.
Gruß, Jan
|
|
|
Steven |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.02.2011, 16:07
Titel:
|
|
Hallo,
ich habe ein ähnliches Problem nur geht es in die andere Richtung.
Ich arbeite mit sehr kleinen wissenschaftlichen werten der Form 123e-9 bis 12e-11.
Wenn ich diese Werte in eine Matrix speichere rundet MATLAB diese Zahlen auf 0. Ich habe schon probiert die Matrix als double zu definieren, leider mit dem gleichen Ergebnis. Gibt es eine Einstellung das MATLAB auch mit diesen kleinen Zahlen rechnen kann?
Des weiteren werden alle meine Daten nach der 4 Nachkommastelle gerunden, egal wie groß die Zahl vor dem Komma ist.
Ich verstehe nicht warum ein Mathematisches Rechenprogramm soetwas macht.
Mein pobliger Taschenrechner rundet doch auch nicht einfach....
Ich hoffe einer von euch kann mir weiterhelfen =)
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.02.2011, 16:20
Titel:
|
|
Hallo,
wie du beim Ausführen deiner Rechnungen selbst feststellen wirst, rundet MATLAB keineswegs. Es ist lediglich eine Frage der Anzeige. Und dazu hat Jan schon Anregungen gegeben, ich würde nur noch das hinzufügen:
Das bringt meines Erachtens die schönste Darstellung.
Zitat: |
Ich verstehe nicht warum ein Mathematisches Rechenprogramm soetwas macht. |
Das würde ich auch nicht verstehen. Aber dem ist ja nun auch nicht so.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Steven |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.02.2011, 17:52
Titel:
|
|
Also verstehe ich das richtig, das MATLAB zwar gerundete Werte anzeigt aber im Hintergrund mit den normalen Werten weiterrechnet?
Das wäre natürlich weltklasse...
Muss ich dieses
nur ins Command-Window eingeben, oder schreibe ich es in den Editor zu meinem Code?
Danke
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.02.2011, 18:22
Titel:
|
|
Hallo,
Zitat: |
Das wäre natürlich weltklasse... |
So isses.
Und einmalig ins Command Window eingeben reicht.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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.
|
|