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

时间:2017-03-03 09:55:36

标签: matlab cell-array

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

由于

2 个答案:

答案 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