在MATLAB中获取包含特定字符串(更快)的文件夹中的文件名

时间:2015-02-05 12:04:27

标签: matlab optimization

我有一个文件夹,其中来自数字模型的后处理文件以不同的名称存储。例如 - WL。{simulation_name} .nc,UVel。{simulation_name} .nc等。

我正在MATLAB中编写一个通用脚本来挑选我需要的文件并进一步处理它,无论模拟名称如何:

dirFiles = dir(pwd)

for ii = 3:size(dirFiles,1)
    s = dirFiles(ii).name
    if strfind(s,'WL')
       Data.WL = nc_varget(dirFiles(ii).name,'WL');
    end
end

问题是文件夹通常包含30-40个不同变量的文件。上述脚本中的循环极大地减慢了处理时间。

有没有办法让更清洁,更快的解决方案?

P.S:一种方法是使用eval功能,但我真的不想使用它,除非它是最后一个选项。

谢谢! 欢呼声。

1 个答案:

答案 0 :(得分:0)

将'dir'替换为'rdir'

http://www.mathworks.com/matlabcentral/fileexchange/19550-recursive-directory-listing

在这里,您可以使用搜索模式缩短dirFiles。

dirFiles = rdir([pwd '\*WL*.*')