/ / Matlab String zu verdoppeln (str2double) - Matlab, Casting, double

Matlab String zu verdoppeln (str2double) - Matlab, Casting, double

Ich versuche, eine finantial Anwendung das zu bauenUmgang mit wirtschaftlichen Daten mit Matlab. Die Datei, die ich laden möchte, befindet sich in einer CSV-Datei und ist eine doppelte Nummer in diesem Format "1222.3". Bis jetzt arbeite ich nur mit einer Dimension und kann die Daten in einen Vektor laden.

Das Problem besteht darin, dass die Daten im String-Format in den Vektor geladen werden. Um den gesamten Vektor in ein Doppelformat zu ändern, benutze ich str2double (vector), aber die Zahlen im Vektor enden wie folgt:

1222.3 -> 1.222
153,4 -> 0,1534

Ich habe versucht, den Vektor pro 100 zu multiplizieren (Vektor. * 100), aber hat nicht gearbeitet.

Irgendeine Idee?

Antworten:

0 für die Antwort № 1

Matlab zieht automatisch einen gemeinsamen Faktor herausnumerische Vektoren, die mich selbst oft verwirrt haben. Die Zeile, die den gemeinsamen Faktor liefert, ist besonders bei großen Vektoren leicht zu übersehen, da sie oben angezeigt wird.

Wenn ich einen Vektor mit der von Ihnen angegebenen Nummer definiere, zeigt Matlab ihn mir folgendermaßen an:

Matlab-Zahlenformatierung

Es hat einen Faktor von 1000 herausgezogen, wie durch die Linie angezeigt wird 1.0e+03 *.


0 für die Antwort № 2

Wenn Ihre Vektorkomponenten groß genug sind, druckt MATLAB die Zahlen im exponentiellen Format.

>> a = 1234.56

a =

1.2346e+03

Die Nummern werden im Arbeitsbereich-Browser auch in wissenschaftlicher Notation angezeigt:

exponentielles Format im Arbeitsbereich-Browser

Sie können die Zahlen in dezimaler Form drucken, indem Sie z.B. fprintf:

>> fprintf("%5.3fn",a)
1234.560
>>

Als Randnotiz, 1.222 * 100 ≠ 1222 ...