我有很多.mat格式的数据。此外,我的主数据文件夹有很多子文件夹。在每个子文件夹下,我都有1000个.mat数据文件。我想使用python加载所有这些。我正在尝试,但是无法自动执行。我需要帮助来编写一个函数,其中
NB:每个.mat文件都有两个单独的条目:signal和fs。我只想考虑信号文件。
我将在其中添加文件夹树图片以及每个.mat文件的变量的图片。
请帮助我。在此处输入图像描述
尝试此功能-它遍历所有子文件夹,查找并加载.mat文件,并将其加载到结构中,该结构将每个文件夹和文件名组织为子字段。
function data=loadmatfromdir(rootdir)
fd=dir(rootdir);
data=struct();
for i=1:length(fd)
fname=[fd(i).folder filesep fd(i).name];
if(fd(i).isdir && isempty(regexp(fd(i).name,'^\.{1,2}$', 'once')))
data.(genvarname(fd(i).name))=loadmatfromdir(fname);
elseif(regexp(fd(i).name,'\.[Mm][Aa][Tt]'))
data.(genvarname(fd(i).name))=load(fname);
end
end
如果您要从.mat文件而不是所有变量中加载特定的变量,请修改load(..)以添加变量名称-例如,调用load(fname,'signal')
仅加载信号变量;如果要匹配特定的文件名模式,请在底部修改regexp调用。当前它与所有.mat文件匹配。