我的目标是从单个目录加载所有.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
谢谢!
答案 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