【发布时间】:2012-07-25 13:16:27
【问题描述】:
我正在使用大型数组(每个大约 70 MB)并且担心将它们传递给函数。我的理解是 Matlab 使用传值函数参数,为被调用函数制作本地副本。
作为一个肮脏的解决方法,我一直将大型数组声明为全局数组,并在计算完成时手动取消分配它们。
我的问题: 有没有办法在 Matlab 中使用指针?这就是我在 C/C++ 中的做法。如果没有,还有其他更节省内存的方法吗?我读过全局变量通常是个坏主意。
【问题讨论】:
-
其实Matlab是通过引用传递的,除非它决定需要通过值传递...看这里的解释mathworks.com/matlabcentral/answers/…
-
这里还链接到进一步的讨论:blogs.mathworks.com/loren/2006/05/10/…
-
我之前在一个类似的问题中讨论过 MATLAB 如何将参数传递给函数。我想你会发现答案很有用:In-Place Quicksort in matlab
-
你的函数是只从数组中读取数据,还是直接操作数组的内容?
标签: matlab global-variables parameter-passing pass-by-reference large-data