Я хочу прочитать данные файла размером около 60 МБ в matlab в некоторых переменных, но я получаю ошибки. Это мой код:Чтение данных в matlab с циклом for
clear all ;
clc ;
% Reading Input File
Dataz = importdata('leak0.lis');
%Dataz = load('leak0.lis');
for k = 1:1370
foundPosition = 1 ;
for i=1:size(Dataz,1)
strp = sprintf('I%dz=',k);
fprintf(strp);
findValue = strfind(Dataz{i}, strp) ;
if ~isempty(findValue)
eval_param = strp + '(foundPosition) = sscanf(Dataz{i},''%*c%*c%*f%*c%*c%f'') ;';
disp(eval_param);
% str(foundPosition) = sscanf(Dataz{i},'%*c%*c%*f%*c%*c%f') ;
eval(eval_param);
foundPosition = foundPosition + 1 ;
end
end
end
Когда я отлажен, я обнаружил, что Датас пуст & поэтому не переходят к следующей строке. Я заменяю его на fopen, загрузку & и т. Д., Но это не сработало.
Waht является форматом содержимого файла? –
это фрагмент файла: *** monte carlo index = 1 *** i1z = -17.3439n i2z = -24.7754p – lili94
Без петли на K я получил данные в рабочем пространстве Matlab. Я имею в виду, если я делаю это для каждого из k, но проблема в том, что когда я пишу 1370 раз из следующего кода, программа matlab переходит в состояние занятости в течение нескольких часов и не отвечает: foundPosition = 1; для i = 1: размер (данные, 1) findValue = strfind (данные {i}, 'i11p ='); if ~ isempty (findValue) i11p (foundPosition) = sscanf (Данные {i}, '% * c% * c% * f% * c% * c% f'); foundPosition = foundPosition + 1; end end – lili94