A = A + B会分配新内存吗?

时间:2012-01-17 15:53:07

标签: matlab memory-management

写作时

A = A + B;

A和B beeing矩阵,MATLAB将执行此操作"就地"即更改A中的元素,还是会分配新内存来存储结果?如果是这样,我该如何避免呢?

我想知道的原因是,例如,如果写一个

A = A + B + A^2;

原始数据需要多次访问,因此不能简单地被第一次添加覆盖。

谢谢。

1 个答案:

答案 0 :(得分:5)

我在计算机上使用系统监视器对其进行了测试。我发现A=A+B没有分配新的内存,但是A=A+B+A^2确实分配了新的内存。

这是有道理的,因为在C ++中,很容易编写没有内存分配的第一个代码,但第二个代码是不可能的。