写作时
A = A + B;
A和B beeing矩阵,MATLAB将执行此操作"就地"即更改A中的元素,还是会分配新内存来存储结果?如果是这样,我该如何避免呢?
我想知道的原因是,例如,如果写一个
A = A + B + A^2;
原始数据需要多次访问,因此不能简单地被第一次添加覆盖。
谢谢。
答案 0 :(得分:5)
我在计算机上使用系统监视器对其进行了测试。我发现A=A+B
没有分配新的内存,但是A=A+B+A^2
确实分配了新的内存。
这是有道理的,因为在C ++中,很容易编写没有内存分配的第一个代码,但第二个代码是不可能的。