使用matlab从目录中读取多个文件

read multiple files in from a directoryusing matlab

如何使用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 文件只是多行单列的字符串,需要在循环中读取并进一步处理。

谢谢

fopen给出文件指针,你保存到mydata{k},尝试在fclose(fid)释放。没有fid,所以不行。 您应该做的是将 mydata{k} 替换为 fid。可能 valuesmydata{k}.

另一个错误在 numfiles = ... 中。您将始终拥有 numfiles = 5,因为“*.dat”中有 5 个字符。

numfiles = length(files);

会更好,尽管您也会计算目录。检查如何解决此问题的其他问题之一。

谢谢 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