我想在其他Matlab函数中使用带有1.0e6元素的大型数组。目前我正在使用小型数组并将它们作为函数输入传递。我不知道当我使用大型数组时,这些数组的传递会影响程序的速度。我也可以将这些输入的大型数组保存为.mat文件,然后将它们加载到其他Matlab函数中以供使用。
所以,我的问题是:哪种方式更快?将数组保存在.mat文件中,然后将它们加载到Matlab函数或中,将它们作为函数输入传递。
答案 0 :(得分:0)
将它们作为函数的输入传递是最快的,因为Matlab通过引用传递变量(直到你更改它们 - 然后它会复制)
从文件保存和加载肯定会慢一点!
答案 1 :(得分:0)
根据我的经验,不保存数组会更快(更快)。
此外,您可以在此处了解有关matlab机制的更多信息:http://undocumentedmatlab.com/blog/internal-matlab-memory-optimizations
只要您的函数不修改大型数组,它就不会影响性能,将其作为函数的输入传递。