登录论坛

查看完整版本 : MATLAB:从函数内部加载


poster
2019-12-14, 20:13
我有一个MATLAB函数,需要访问一些largeFile.mat的数据。如果(为了避免污染全局名称空间)我在函数中放入了load命令,则MATLAB将在每次调用该函数时重新加载largeFile,还是足够聪明以在两次调用之间缓存largeFile?例如

function hello() load largeFile.mat; display('hi'); end for i=1:1000 hello(); end 我应该将load命令保留在函数中,还是应该执行一次并以arg形式传递largeFile的数据?谢谢!



回答:

Matlab会在每次调用时加载它,因此调用一次并将其作为输入要快得多。如果您不想使工作区混乱,建议您将文件加载到这样的结构中

L =负载('largeFile.mat');

编辑:我对您的hello()函数和我的.mat文件之一进行了快速测试。将其加载到函数中并运行100次,我用了43.29秒。加载一次并将其作为输入进行100次运行需要0.41秒,因此时间差很大。



更多&回答... (https://stackoverflow.com/questions/5066262)