当文件较多时,4000个左右,dir()
功能非常慢。我的猜测是它创建了一个结构并以低效的方式填充值。
是否有任何快速而优雅的替代方法可以使用dir()
?
更新:使用 MATLAB R2011a 在 64 位、Windows 7 中进行测试。
更新 2:大约需要 2 秒才能完成。
您使用哪种 CPU/操作系统?我刚刚在我的机器上尝试了一个包含 5000 个文件的目录,速度非常快:
>> d=dir;
>> tic; d=dir; toc;
Elapsed time is 0.062197 seconds.
>> tic; d=ls; toc;
Elapsed time is 0.139762 seconds.
>> tic; d=dir; toc;
Elapsed time is 0.058590 seconds.
>> tic; d=ls; toc;
Elapsed time is 0.063663 seconds.
>> length(d)
ans =
5002
MATLAB 的 ls 和 dir 函数的另一种替代方法是直接使用 Java 的java.io.File
在 MATLAB 中:
>> f0=java.io.File('.');
>> tic; x=f0.listFiles(); toc;
Elapsed time is 0.006441 seconds.
>> length(x)
ans =
5000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)