MATLAB'移动'还是''复制返回值?

时间:2016-03-16 16:12:49

标签: matlab

给出以下代码

function [out] = doit() 
   out = [1,2,3,4,5,6];
end

tmp = doit();

MATLAB会将out的内存复制到tmp还是直接将其移至tmp

1 个答案:

答案 0 :(得分:7)

在MATLAB中没有像指针那样的东西,有local workspaces

似乎MATLAB很聪明,只要需要就可以复制并返回,如果不需要则通过“指针”(不知道它)。正如@Daniel和@zeeMonkeez指出的那样,这在Loren的博客here中进行了讨论,当在here内创建内存时,她明确回答了函数返回。这些帖子中的一般想法是“除非需要,否则MATLAB不会复制”

基本上,MATLAB从内存管理中抽象出来。

Sidenote :如果你真的需要利用这个,那就像指针一样。请参阅@ excaza的评论。