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