我想在其他Matlab函數中使用1.0e6元素的大數組。目前我正在使用小型數組並將它們作爲函數輸入傳遞。當我使用大型數組時,數組的這種傳遞將不會影響我的程序的速度。也可以將這些輸入大型數組保存爲.mat文件,然後將它們加載到其他Matlab函數中以供使用。Matlab:傳遞大數組或從.mat文件加載
所以,我的問題是:哪種方式更快?將數組保存在.mat文件中,然後將它們加載到Matlab函數或中,將它們作爲函數輸入傳遞。
我想在其他Matlab函數中使用1.0e6元素的大數組。目前我正在使用小型數組並將它們作爲函數輸入傳遞。當我使用大型數組時,數組的這種傳遞將不會影響我的程序的速度。也可以將這些輸入大型數組保存爲.mat文件,然後將它們加載到其他Matlab函數中以供使用。Matlab:傳遞大數組或從.mat文件加載
所以,我的問題是:哪種方式更快?將數組保存在.mat文件中,然後將它們加載到Matlab函數或中,將它們作爲函數輸入傳遞。
將它們作爲輸入你的函數是最快的Matlab的按引用傳遞變量(直到你改變它們 - 那麼它將使複印件)
保存和從文件加載肯定會慢一些!
根據我的經驗,不會保存數組會更快(快)。
更重要的是,你可以瞭解更多關於此MATLAB機制:http://undocumentedmatlab.com/blog/internal-matlab-memory-optimizations
只要你的函數不會修改您的大陣,也不會影響性能把它作爲函數的輸入。
爲什麼不直接使用工作區變量? –