如何在matlab中列出具有特定名称的文件夹中的所有文件?

时间:2014-01-26 18:45:22

标签: string matlab loops dir xlsread

我一直在制作一个循环,为文件夹中的121个不同文件分配Mx名称。

    allFiles = dir( '*.xls''String' );
allNames = { allFiles.name };

for ii = 1:length(allNames) M(ii) = xlsread(allFiles(1i)); 
end

麻烦的是没有错误消息,但它没有为我想要的值/文件分配任何名称。

listing = dir('*.xls');

disp(listing);

当我制作一个简单的目录()时,它会告诉我

 121x1 struct array with fields:
    name
    date
    bytes
    isdir
    datenum

但我必须使它成为一个字符串才能使xlsread()工作。

我想要的是为每个文件命名,以便我可以在matlab中处理它们(即添加两个矩阵)。

有什么不对?

1 个答案:

答案 0 :(得分:3)

这个问题基本上只是错别字和变量的混淆:

allFiles = dir('*.xls'); % correct file extension

for ii = 1:size(allFiles, 1) % allFiles has one row per file, so loop over those
    M{ii} = xlsread(allFiles(ii).name); % store matrix in cell array
end

请注意,M现在是一个单元格数组,因为您无法在矩阵或向量中存储多个矩阵。