Matlab:传递大型数组或从.mat文件加载

时间:2015-04-08 15:15:01

标签: matlab performance large-data

我想在其他Matlab函数中使用带有1.0e6元素的大型数组。目前我正在使用小型数组并将它们作为函数输入传递。我不知道当我使用大型数组时,这些数组的传递会影响程序的速度。我也可以将这些输入的大型数组保存为.mat文件,然后将它们加载到其他Matlab函数中以供使用。

所以,我的问题是:哪种方式更快?将数组保存在.mat文件中,然后将它们加载到Matlab函数中,将它们作为函数输入传递。

2 个答案:

答案 0 :(得分:0)

将它们作为函数的输入传递是最快的,因为Matlab通过引用传递变量(直到你更改它们 - 然后它会复制)

从文件保存和加载肯定会慢一点!

答案 1 :(得分:0)

根据我的经验,不保存数组会更快(更快)。

此外,您可以在此处了解有关matlab机制的更多信息:http://undocumentedmatlab.com/blog/internal-matlab-memory-optimizations

只要您的函数不修改大型数组,它就不会影响性能,将其作为函数的输入传递。