The*_*guy 2 matlab memory-management
写作时
A = A + B;
Run Code Online (Sandbox Code Playgroud)
A和B beeing矩阵,MATLAB将执行"就地"即改变A中的元素,还是分配新的内存来存储结果?如果是这样,我该如何避免呢?
我想知道的原因是,例如,如果一个人写道
A = A + B + A^2;
Run Code Online (Sandbox Code Playgroud)
原始数据需要多次访问,因此不能简单地被第一次添加覆盖.
谢谢.
我使用系统监视器在计算机上测试了它.我观察到A=A+B它没有分配新的内存,但A=A+B+A^2确实分配了新的内存.
这是有道理的,因为在C++中,很容易编写没有内存分配的第一个代码,但第二个代码是不可能的.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |