Преобразовать мои данные из массива символов в числовой массив
Я читаю файл plt, но я нахожу проблему с преобразованием моих данных из массива символов в числовой массив. Я пробовал с str2num и str2double, результат всегда: [] или NaN.
[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`
Вы найдете здесь образец содержимого:
+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`
1 ответ
Чтобы преобразовать строку, содержащую несколько чисел, разделенных пробелами, вы захотите использовать str2num
и не str2double
,
str2double
ожидает одно число в виде строки или массива ячеек строк и, если вы передадите ему что-нибудь еще, вернет NaN
,