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

标签 matlab memory-management

写作时

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/

相关文章:

matlab - 使轴和刻度线优先于绘制的线

arrays - 根据一定的值向左选择矩阵中的n个元素

c - 如何访问分配给不同进程的内存?

java - 如何计算(并指定)java进程允许的总内存空间?

JavaScript 清理内存

matlab - 右数组分区 : Ignoring division by zeroes

matlab - 在多维数组中索引第三维或更高维度时如何获取线性数组

excel - 在 matlab 或 excel 中绘制 3D 条形图

c++ - 删除指针的后遗症

java - Matlab内存管理; java堆不足