我有四个变量,每个变量都保存在 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');
使用 Profiler,我可以看到前两个变量在 365 次调用中加载需要 5420 秒,而后两个变量在 365 次调用中分别需要 6 和 4 秒加载。当我交换加载变量的顺序时,例如eEraSD
before tempSD
,仍然是前两个加载需要更多时间。
当tic
toc
用于跟踪加载所花费的时间时,加载第一个或第二个变量的时间似乎随着调用次数呈指数增长(最后一次调用需要 50 秒才能运行)。对于第三个和第四个变量,每个文件的加载时间保持在 0.02-0.04 秒左右,或多或少与我在 for 循环中走了多远无关。见下图。
当使用importdata
而不是“加载”时,第一行大约需要 8000 秒才能加载 365 次(加载呈指数增长,如第二张图中的 T 所示)。然后其他行大约需要 10 秒才能加载 365 次。
我不明白为什么它看起来像这样,以及我能做些什么来减少加载时间。将不胜感激任何可能的解决方案的想法。