Class 复制句柄类的方法?
我有一个按句柄的类,我想按值复制它并将其存储在某个地方。但是,如果我在类中更改了任何内容,它也会更改它的副本 下面是我要复制的类的一个示例:Class 复制句柄类的方法?,class,matlab,copy,handle,Class,Matlab,Copy,Handle,我有一个按句柄的类,我想按值复制它并将其存储在某个地方。但是,如果我在类中更改了任何内容,它也会更改它的副本 下面是我要复制的类的一个示例: classdef MyClass < handle properties data; end methods function M = MyClass() M.data=5; end end end 最后,如果我更改'm'中'data
classdef MyClass < handle
properties
data;
end
methods
function M = MyClass()
M.data=5;
end
end
end
最后,如果我更改'm'中'data'的值,我不希望它更改存储中的值,但是看起来MyClass是通过引用存储在'store'中的:
>> m.data=3;
>> a.store
ans =
MyClass handle
Properties:
data: 3
Methods, Events, Superclasses
>> a.store.data
ans =
3
是否可以复制“句柄”类?或者我是否需要将我的类更改为“按值生成”才能使其工作?您可以通过派生使其可复制,有关详细信息,请参阅链接。很好!这正是我所需要的:)
>> m=MyClass
m =
MyClass handle
Properties:
data: 5
Methods, Events, Superclasses
>> a=Test(m)
a =
Test handle
Properties:
store: [1x1 MyClass]
Methods, Events, Superclasses
>> a.store
ans =
MyClass handle
Properties:
data: 5
Methods, Events, Superclasses
>> m.data=3;
>> a.store
ans =
MyClass handle
Properties:
data: 3
Methods, Events, Superclasses
>> a.store.data
ans =
3