如何使用matlab从目录中读取多个文件?有人可以帮助我更正下面的代码:
files =dir(fullfile(directory_path,'*.dat'));
numfiles = length('*.dat');
mydat = cell(1, numfiles);
for k = 1:numfiles
mydata{k} = fopen([directory_path,files(k).name]);
values=textscan(mydata{k},'%s','delimiter','\n');
fclose(fid);
%fprintf(values)
....do something with values.....
end
.dat文件只是很多行和单列字符串,需要在循环中读取并进一步处理。
由于
答案 0 :(得分:1)
fopen
提供文件指针,您将其保存到mydata{k}
,并尝试按fclose(fid)
发布。没有fid
,所以它不起作用。
您应该做的是将mydata{k}
替换为fid
。可能是values
mydata{k}
。
另一个错误在numfiles = ...
。你总是有numfiles = 5,因为'* .dat'中有5个字符。
numfiles = length(files);
会更好,虽然你也会计算目录。检查其他一个问题如何解决这个问题。
答案 1 :(得分:0)
谢谢Zizy Archer。
我用这种方式解决了问题:
files =dir(fullfile(directory_path,'*.dat'));
numfiles = length(files);
for k = 1:numfiles
textFileName = [directory_path,files(k).name]
fid = fopen(textFileName, 'r');
textData = textscan(fid,'%s','delimiter','\n');
fclose(fid);
data = textData{:,1}
end