我一直在制作一个循环,为文件夹中的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中处理它们(即添加两个矩阵)。
有什么不对?
答案 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
现在是一个单元格数组,因为您无法在矩阵或向量中存储多个矩阵。