MATLAB Answers

How to copy an object that is not a graphic one?

1 view (last 30 days)
JFz on 13 Apr 2018
Answered: Steven Lord on 13 Apr 2018
I have an object of a class which I defined. I would like to make a copy of that object. But copy or copyobj do not seem to work. What should I do?

  1 Comment

JFz on 13 Apr 2018
BTW, the object is derived from handle.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 13 Apr 2018
Edited: Matt J on 13 Apr 2018
In general, you would have to write a copy() method specific to the needs of your class. The copy() method would have to call the class constructor with suitable arguments to generate a copy.
If your class is sufficiently simple that a copy can be made just by dot-indexing all of the non-Dependent, public property values and writing them to a second object,
objcopy.prop1 = obj.prop1;
objcopy.prop2 = obj.prop2;
then you can just use my attached copyprops() utility, which automates this.

More Answers (1)

Steven Lord
Steven Lord on 13 Apr 2018
Consider having your class subclass the matlab.mixin.Copyable class. It provides a copy method and a copyElement method that you can use to customize the copy behavior. For more information see the topic "Implement Copy for Handle Classes" in the documentation.


Sign in to comment.



Translated by