-3

我一直在制作一个循环,为文件夹中的 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);

当我做一个简单的 dir() 它告诉我

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

但我必须将其设为字符串才能使 xlsread() 工作。

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

有什么问题?

4

1 回答 1

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它现在是一个元胞数组,因为您不能将多个矩阵存储在一个矩阵或向量中。

于 2014-01-26T22:31:03.567 回答