2016-03-27 4 views
0

I Werte einer txt-Datei mit MATLAB lesen müssen, ist die Datei hier:Wie kann ich eine komplexe Zahl mit MATLAB in einer Datei lesen

-0.933475 0.358642 
-1 6.12323e-17 

aber ich habe einige Probleme mit diesem Wert 6.12323e-17, in Matlab wenn ich es gelesen habe, ist das Tal 0.0000

hier ist der MATLAB-Code:

close all; clear; 
arquivo = fopen('fftOut.txt'); 
formatSpec = '%f %f'; 
sizeA = [2 inf]; 
X = fscanf(arquivo,formatSpec, sizeA); 
X' 
fclose(arquivo); 

und der Ausgang ist

-0.9335 0.3586 
    -1.0000 0.0000 

Wie kann ich damit umgehen 0.0000?

Vielen Dank im Voraus

+1

Technisch gesehen ist 0,0000 korrekt, da Ihr Exponent -17 ist. Haben Sie versucht, den Wert vor dem Ausdruck zu betrachten? Oder versuchen Sie das Format zu ändern. – physics90

+0

Hallo @ Physik90 also, wenn ich verstanden habe, haben Sie keinen Fehler? –

+0

@physics, Sie sind richtig, ich habe versucht, den Wert auf 6.12323e2 ändern und das Ergebnis ist 612.3230. –

Antwort

0

Es ist nicht 0, wenn Matlab eine Matrix druckt, verwendet es die gleiche Schreibweise für alle Elemente, so ist der gedruckte Wert verkürztes, jedoch die gespeicherte man nicht.

Versuchen Sie, nur den imaginären Teil der zweiten Nummer zu drucken.

+1

Die Nummer 6,12323e-17 ist 0,000000000000000000612323. Festkomma-Formatierung zeigt nur die ersten 4 Dezimalstellen: 0.0000. – physics90

+0

@ physics90 IO-Funktionen verwenden fp-Formatierung, aber die Matlab-Standardanzeige gibt die wissenschaftliche Notation für das maximale Element aus. – xvan

+0

Was ist dann der Zweck seiner formatSpec =% f% f? – physics90

Verwandte Themen