f. *_* c. 2 matlab deep-copy shallow-copy copy-assignment
例如,我想要做的深层复制a到b:
>> a=zeros(2,3);
>> b=a;
Run Code Online (Sandbox Code Playgroud)
所以这里=只创建了一个浅拷贝。我的问题是,在这种情况下如何生成深拷贝?我知道我可以添加一个命令
b(1,1)=b(1,1)
Run Code Online (Sandbox Code Playgroud)
使其成为深拷贝。但是有没有更好的方法来做到这一点?
Matlab 不创建浅拷贝,而是在写入时使用拷贝。除了运行时,这对您来说应该是完全透明的,这意味着 matlab 在需要时创建副本。如果你想强制复制,你可以使用这里提到的例子之一:https : //stackoverflow.com/a/36062575/2732801
B=A(:,:);
Run Code Online (Sandbox Code Playgroud)