matlab - 如何在 MATLAB 中显式制作数组的深层复制?

标签 matlab deep-copy shallow-copy copy-assignment

例如,我想将 a 深度复制到 b:

>> a=zeros(2,3);
>> b=a;

所以这里=只创建一个浅拷贝。我的问题是,在这种情况下如何生成深拷贝?我知道我可以添加类似的命令

b(1,1)=b(1,1)

使其成为深层复制。但是有更好的方法吗?

最佳答案

Matlab 不创建浅复制,而是使用写入时复制。除了运行时之外,这对您来说应该是完全透明的,这意味着 matlab 在需要时创建副本。不过,如果您想强制复制,您可以使用此处提到的示例之一: https://stackoverflow.com/a/36062575/2732801

 B=A(:,:);

关于matlab - 如何在 MATLAB 中显式制作数组的深层复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60004389/

相关文章:

matlab - 如何调整 MATLAB 矩阵的大小

matlab - X-Z 平面而不是 X-Y 平面中的颤动图

pass-by-reference - 值传递/引用等效于分别进行深层/浅层复制吗?

Java - 实现数组的深拷贝和浅拷贝

无明显原因使用 Python 列表切片语法

c# - 浅拷贝还是深拷贝?

python - 相当于 Python 中 Matlab 中的 'ismember' 吗?

algorithm - 高斯混合模型 - 参数的Matlab训练

C++:深度复制基类指针

java - Treeset 的 clone() 的证明在 java 中创建了浅拷贝?