, Есть еще одна проблема с этим методом - и он работает только для одной строки чисел в текстовом файле.

аю текстовый файл вmatlab , Вот код

allData = textread(file', '%s', 'delimiter', '\n');

numericalArray = cellfun(@(s) sscanf(s,'%f').' ,allData, 'un', 0);
% Get Header
header = allData(cellfun('isempty',numericalArray));
% Get Data
data = vertcat(numericalArray{:});

Вот пример текстового файла

head1 head2
760.00 0.3724127064860939

Выход:

 data(1,:)

ans =

  760.0000    0.3724

значение второго столбца усечено, однако, я хочу получить0.3724127064860939

 user511819705 нояб. 2017 г., 14:23
с участиемtextscanЯ могу получить правильные значения. @ Dev-Ир
 Dev-iL05 нояб. 2017 г., 14:24
Да, но вы не можете получить правильные значения сtextread или....
 user511819705 нояб. 2017 г., 14:18
да уж. Я проверил это в рабочей области @ Dev-iL
 Dev-iL05 нояб. 2017 г., 14:16
Вы уверены, что это не проблема отображения? Также,textread MATLAB не рекомендуется .. Вы должны использоватьtextscan вместо.
 user511819705 нояб. 2017 г., 14:25
Извиняюсь, сtextscan значения верны

Ответы на вопрос(1)

Решение Вопроса

робелами). Во всех методах точность сохраняется.

Предполагая, что у вас есть вход вdemo.txt:

Способ 1: простойtextscan
fid = fopen('demo.txt','r'); % open for reading
txt = textscan(fid,'%s','delimiter', '\n'); txt = txt{1}; % read lines and unbox
fclose(fid);

H = strsplit(txt{1},' '); % split the headers line
V = str2double(strsplit(txt{2},' '));
Способ 2:dlmread
R = dlmread('demo.txt',' ',1,0); % this is an example in the documentation of dlmread
Способ 3:readtable
T = readtable('demo.txt');
 user511819705 нояб. 2017 г., 14:41
Метод 1 не решает проблему @dev
 Dev-iL05 нояб. 2017 г., 14:43
@cswah Это работает на моей системе (Win10 + R2017b). Когда вы увидите переменную в рабочей области, убедитесь, что вы дважды щелкните0.3724, Есть еще одна проблема с этим методом - и он работает только для одной строки чисел в текстовом файле.

Ваш ответ на вопрос