2016-11-23 2 views
-3

Ich lese eine Plt-Datei, aber ich finde ein Problem, um meine Daten von Character-Array in numerische Array zu konvertieren. Ich habe versucht mit str2num und str2double das Relulst ist immer: [] oder NaN.konvertieren meine Daten von Character-Array in numerische Array

[filename pathname] = uigetfile({'*.plt'},'File Selector'); 
fullpathname = strcat(pathname,filename); 
set(handles.text2,'string',fullpathname);%show full path name 
loaddata = fullfile(pathname,filename); 
fid = fopen(loaddata, 'r');% Read the entire file into memory 
contents = fread(fid,'*char')'; 
fclose(fid); 
contents = strrep(contents, ',', '.')% Replace `,` with `.` 
data = str2double(contents)% Now convert to numbers` 

U hier einige Beispiel von den Inhalten finden:

+8.7595000000000000E+03  +0.0000000000000000E+00  
+0.0000000000000000E+00  +8.3581639938152974E-01 
+0.0000000000000000E+00  +4.6014153848539308E+01 
+4.6014153852568526E+01  +0.0000000000000000E+00 
+0.0000000000000000E+00  +8.3581639938152974E-01 
+0.0000000000000000E+00  +2.2902134241670819E+01` 
+6

es wäre einfacher zu testen, was passiert, wenn Sie direkt einige Proben aus Array anstelle von einem Bild zur Verfügung stellen. könntest du das machen? – Roxanne

+0

hallo :) fertig! Ich bearbeite meine Frage –

+0

@EmnaAmeur Ist der Backtick in Ihrem Beispiel Daten (ganz am Ende) tatsächlich da? – Suever

Antwort

0

Um eine Zeichenfolge zu konvertieren, die durch Leerzeichen getrennt mehrere Nummern enthält, werden Sie str2num und nicht str2double verwenden möchten.

str2double erwartet eine einzelne Zahl als Zeichenfolge oder ein Zellenarray von Zeichenfolgen, und wenn Sie es noch etwas füttern, wird NaN zurückgegeben.

+0

str2num result's [] –

+0

@EmnaAmeur es funktioniert gut mit Ihren Beispieldaten. Bitte posten Sie Ihre aktuelle Datei. – Suever

Verwandte Themen