创建mat文件的文件数据存储在matlab中按文件名模式过滤文件

创建mat文件的文件数据存储在matlab中按文件名模式过滤文件,matlab,datastore,Matlab,Datastore,是否可以创建mat文件的文件数据存储,按文件名模式过滤文件? 到目前为止,我得到了这个: fds = fileDatastore(dir_save,'ReadFcn',@load,'FileExtensions','.mat','IncludeSubfolders',true); f=1; while hasdata(fds) disp(num2str(progress(fds)*100) dataarray = read(fds); if ~i

是否可以创建mat文件的文件数据存储,按文件名模式过滤文件? 到目前为止,我得到了这个:

fds = fileDatastore(dir_save,'ReadFcn',@load,'FileExtensions','.mat','IncludeSubfolders',true);
f=1;
while hasdata(fds)
        disp(num2str(progress(fds)*100) 
        dataarray = read(fds);
        if ~isempty(strfind(fds.Files{f},myPattern))
            %% do somthing
        end
        f=f+1;
end
但是我不会使用的一些mat文件非常大,因此会减慢进程。 我无法将所有文件移动到1个目录,因为我的目录结构如下:

d01/file1.mat
d01/myPatternFile.mat
d01/othefile.mat
d02/file1.mat
d02/myPatternFile.mat
d02/othefile.mat
etc

您可以在对的调用中使用通配符。 使用以下文档中的示例:


要检查不同的文件夹,请使用两个通配符:

>> !mkdir d01
>> !mkdir d02
>> !touch d01/file1.mat
>> !touch d01/myPatternFile.mat
>> !touch d02/file2.mat
>> !touch d02/myPatternFile.mat
>> fileDatastore(fullfile(pwd,'d*\myPattern*'),'ReadFcn',@load,'FileExtensions','.mat')
ans = 

  FileDatastore with properties:

                       Files: {
                              'H:\Documents\56133896\d01\myPatternFile.mat';
                              'H:\Documents\56133896\d02\myPatternFile.mat'
                              }
                 UniformRead: 0
                     ReadFcn: @load
    AlternateFileSystemRoots: {}

很好的解决方案!如果我的文件都在一个目录中,但我将它们分散在不同的子文件夹中。。。实际上,正因为如此,我得到了一个错误:
通配符“*”字符不能与IncludeSubfolders一起使用
请参阅我编辑的答案。您可以以类似的方式使用两个通配符。
>> !mkdir d01
>> !mkdir d02
>> !touch d01/file1.mat
>> !touch d01/myPatternFile.mat
>> !touch d02/file2.mat
>> !touch d02/myPatternFile.mat
>> fileDatastore(fullfile(pwd,'d*\myPattern*'),'ReadFcn',@load,'FileExtensions','.mat')
ans = 

  FileDatastore with properties:

                       Files: {
                              'H:\Documents\56133896\d01\myPatternFile.mat';
                              'H:\Documents\56133896\d02\myPatternFile.mat'
                              }
                 UniformRead: 0
                     ReadFcn: @load
    AlternateFileSystemRoots: {}