Matlab中的数据加载时间长

LaW*_*aWa 6 matlab matlab-load

我有四个变量,每个变量保存在365个mat文件中(大小:8 x 92 x 240).我尝试在for-loop day = 1:365中将这些加载到我的函数中,每天一个变量文件.但是,这两个第一个变量总是需要很长时间才能加载.我的加载代码如下所示:

load([eraFolder sprintf('Y%dD%d-tempSD.mat',year,day)], 'tempSD'); % took 5420 s to load

load([eraFolder sprintf('Y%dD%d-tempDewSD.mat',year,day)], 'tempDewSD') 

load([eraFolder sprintf('Y%dD%d-eEraSD.mat',year,day)], 'eEraSD'); % took 6 seconds to load

load([eraFolder sprintf('Y%dD%d-pEraSD.mat',year,day)], 'pEraSD'); 
Run Code Online (Sandbox Code Playgroud)

使用Profiler,我可以看到前两个变量在365次调用中加载5420秒,而最后两个变量分别在365次调用中加载6和4秒.当我交换加载变量的顺序时,例如eEraSD之前tempSD,它仍然是前两个加载需要更多时间.

tic toc用于跟踪加载所花费的时间时,加载第一个或第二个变量的时间似乎随着调用次数呈指数增长(最后一次调用需要50秒才能运行).对于第三个和第四个变量,加载时间保持在每个文件大约0.02-0.04秒,或多或少独立于我已经去过的for循环的距离.见下图.

在此输入图像描述 在此输入图像描述

当使用importdata而不是'load'时,第一行需要大约8000秒才能加载365次(加载量呈指数增长,如第二幅中的T所示).然后其他线路需要大约10秒钟才能加载365次.

我不明白为什么它看起来这样,我可以做些什么来减少加载时间.非常感谢任何可能的解决方案的想法.

LaW*_*aWa 1

感谢您的帮助。我终于知道是什么原因导致了这个问题。在脚本后面的“for”循环中,我将其他数据保存到一个名为 temp 的文件夹中。将该文件夹重命名为其他文件夹(例如临时文件夹)后,数据加载问题就消失了。

(现在实际问题已经解决了,这并不重要,但我不能真正说我理解为什么后来的“保存”调用和“导入数据”或“加载”调用之间存在这种特殊的关系。)

temp请查看有关该文件夹的新问题