给定以下代码
function [out] = doit()
out = [1,2,3,4,5,6];
end
tmp = doit();
是将out
的内存复制到tmp
,还是将其直接移动到tmp
发布于 2016-03-16 16:19:41
在MATLAB中没有什么像指针一样,有局部工作区。
它似乎是聪明的,做一个复制和返回,随时需要,并通过“指针”(你不知道它),如果不需要。正如@Daniel和@zeeMonkeez所指出的,这一点在Loren的博客这里中讨论过,她明确回答了在这里中创建内存时函数返回的问题。这些帖子的一般思想是"MATLAB不会复制,除非它需要“。
基本上,MATLAB将您从内存管理中抽象出来。
Sidenote:如果您真的需要利用这一点,就有类似指针的东西。见@excaza的评论。
https://stackoverflow.com/questions/36041151
复制相似问题