如何在MATLAB中获取文件的长度?

4 matlab file-format file

有没有办法弄清楚.dat文件的长度(按行数)而不将文件加载到工作区?

小智 18

行计数器 - 每行只加载一个字符:

Nrows = numel(textread('mydata.txt','%1c%*[^\n]'))
Run Code Online (Sandbox Code Playgroud)

或文件长度(Matlab):

datfileh = fopen(fullfile(path, filename));
fseek(datfileh, 0,'eof');
filelength = ftell(datfileh);
fclose(datfileh);
Run Code Online (Sandbox Code Playgroud)

  • testread将在未来的Matlab版本中删除.带文本扫描的相应版本是*nrows = numel(cell2mat(textscan(fid,'%1c%*[^ \n]')))*. (6认同)

gno*_*ice 12

我假设您正在使用文本文件,因为您提到了查找行数.这是一个解决方案:

fid = fopen('your_file.dat','rt');
nLines = 0;
while (fgets(fid) ~= -1),
  nLines = nLines+1;
end
fclose(fid);
Run Code Online (Sandbox Code Playgroud)

这使用FGETS读取每一行,计算它读取的行数.请注意,文件中的数据永远不会保存到工作区,它只是在while循环的条件检查中使用.