Hallo,
wer kann mir sagen, wie ich mit Matlab (benutze Vers. 7.0.4)
die Anzahl der Stellen einer Zahl auslesen kann?
Ich habe z.B. folgende Variablen:
zahl1=12345;
zahl2=1.234;
Ich suche einen Befehl, der mir die Anzahl der Digits ausgibt.
Bei ganzen Zahlen kannst du einfach den Zehnerlogarithmus nehmen, abrunden und eins addieren.
Bei Fließkommazahlen ist das problematischer, weil sie alle mit der gleichen Genauigkeit gespeichert werden (zumindest die meisten Programmiersprachen machen das, ob Matlab es genauso macht, weiss ich nicht), d.h. sie sind z.B. alle als 64 Bit Fließkommazahlen gespeichert. Nicht jeder Wert, den man in Dezimalpunktnotation schreiben kann, wird dabei korrekt abgebildet. D.h. wenn du 1.32 schreibst, kann es sein, dass das Programm intern 1.3199999994 speichert, und nur bei der Ausgabe auf 1.32000 rundet und daher 1.32 ausgibt.
Was wäre in diesem Fall die „echte“ Anzahl von Stellen? 11 Stelle für 1.3199999994 oder 3 Stellen für 1.32?
Die Möglichkeit, dass ich den double-Wert zu einem
char(STRING)-Wert umwandle:
num2str
und daraus mit „length()“ die Anzahl der Zeichen ablese, kenne
ich bereits.
Da ich aber nicht diesen Umweg über „num2str“ gehen möchten,
wäre ich sehr erfreut über Antworten die mir weiterhelfen.
Für Fließkommazahlen wird es schwierig. Aber vielleicht kannst du uns ja sagen, wofür du das brauchst, dann ist es leichter, dir zu helfen.
Grüße,
Moritz