我想在一些变量中将大小约为60 MB的文件的数据读入matlab,但是我得到了错误。这是我的代码:
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
当我调试它时,我发现dataz是空的&所以它不会进入下一行。我用fopen,load&等,但它没有用。
答案 0 :(得分:0)
From the Matlab help files,导入数据可能会失败,因为它无法理解您的文件格式。
来自帮助文件
要导入的文件的名称和扩展名,指定为字符串。如果importdata识别文件扩展名,则它调用MATLAB辅助函数,该函数用于导入相关的文件格式(例如加载MAT文件或xlsread用于电子表格)。否则,importdata会将该文件解释为分隔的ASCII文件。
对于ASCII文件和电子表格,importdata期望找到数字 矩形数据(即矩阵)。文本标题可以 出现在数字数据的上方或左侧,如下所示:
假设您的.lis文件实际上已分隔文本。 您应该在 importdata 调用中调整分隔符,以便Matlab可以理解您的文件。
filename = 'myfile01.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);