如何从具有不同名称

时间:2017-08-03 19:50:11

标签: matlab directory

我的目标是从单个目录加载所有.mat个文件。

假设我感兴趣的文件名为data.mat,位于目录('C:\Users\Owner\Desktop\Experiment1)内。

问题是子文件夹“Experiment1”包含更多子文件夹(例如,('C:\Users\Owner\Desktop\Experiment1\Subject1\January1\data.mat),我希望Matlab绕过子文件夹并从Experiment1中提取所有'data.mat文件'。

这可能吗?如果是这样,我该怎么做?

这是我目前的剧本:

mainFolder = dir('C:\Users\Owner\Desktop\Experiment1');
for i = 1:numel(mainFolder)
    eval(['data_',num2str(i)]) = load('data.mat');
end

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用dir,如果您包含**通配符,则会递归搜索。

例如:

datafiles = dir(fullfile(pathname, '**', 'data.mat'))
for ii = 1:length(datafiles)
    tmp = load(fullfile(datafiles(ii).folder, datafiles(ii).name));

    datastr = sprintf('data_%u', ii);  % Generate data string
    data.(datastr) = tmp
end