我有一个文件夹,其中来自数字模型的后处理文件以不同的名称存储。例如 - 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功能,但我真的不想使用它,除非它是最后一个选项。
谢谢! 欢呼声。
答案 0 :(得分:0)
将'dir'替换为'rdir'
http://www.mathworks.com/matlabcentral/fileexchange/19550-recursive-directory-listing
在这里,您可以使用搜索模式缩短dirFiles。
dirFiles = rdir([pwd '\*WL*.*')