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

Matlab: passing large arrays or loading from .mat file

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

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

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

从文件保存和加载肯定会比较慢!

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

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

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