2016-05-21 16 views
0

Ich habe eine Textdatei meine Daten enthalten, wie folgt aussehen:Lesen von Textdateien, Fehler mit Last MATLAB

3,848E-05 
3,848E-05 
3,848E-05 
3,848E-05 
3,848E-05 
3,848E-05 
3,848E-05 
3,848E-05 
3,848E-05 
2,3088E-05 
-0,00013468 

Ich habe versucht, Last verwenden und einen Fehler mir zu sagen, dass die ASCII-Datei die gleiche Zahl enthalten muss von Spalten pro Zeilen.

Ich habe auch versucht, Importdata und das konnte nicht mit dieser Art von Zahlenformat umgehen. Irgendwelche Ideen? Ich verwende MATLAB 2014a.

fname1 = fullfile(path,'test1.txt'); 
emg1 = importdata(fname1); 

So sahen die importierten Daten mit imports aus.

3 0.00848000000000000 
3 0.00848000000000000 
3 0.00848000000000000 
3 0.00848000000000000 
3 0.00848000000000000 
3 0.00848000000000000 
3 0.00848000000000000 
3 0.00848000000000000 
3 0.00848000000000000 
2 0.0308800000000000 
-1 0.00924000000000000 
+0

Bitte laden Sie Ihren Code und zugehörige Fehler in einem [mcve] – Adriaan

Antwort

0

Das Problem scheint auf die Tatsache zurückzuführen, dass die Werte in der Datei enthalten , (Komma) statt . (dot).

In diesem cse, können Sie

  • lesen Sie die Eingabedatei als Textdatei (mit string) ù
  • die , mit .
  • konvertieren die Zeichenfolge Zahl (double) ersetzen

Eine mögliche Lösung könnte sein:

% Open the input file 
fp=fopen('d.txt','rt') 
% Read the file as a text file 
C=textscan(fp,'%s') 
% Close the text file 
fclose(fp) 
% Convert the string to numbers 
x=str2num(char(strrep(C{1}(:),',','.'))) 

Hoffe, das hilft.

Qapla '