写作时
A = A + B;
A 和 B 是矩阵,MATLAB 会“就地”执行此操作,即更改 A 中的元素,还是会分配新内存来存储结果?如果是这样,我该如何避免这种情况?
我想知道的原因是,例如,如果有人写
A = A + B + A^2;
原始数据需要多次访问,因此不能简单地通过第一次添加来覆盖。
谢谢。
最佳答案
我已经使用系统监视器在我的计算机上对其进行了测试。我观察到 A=A+B
没有分配新内存,但 A=A+B+A^2
确实分配了新内存。
这是有道理的,因为在 C++ 中,无需内存分配就可以轻松编写第一个代码,但第二个代码则不可能。
关于matlab - A=A+B 会分配新的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8897630/