MATLAB Answers

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

2 views (last 30 days)
JFz
JFz on 13 Apr 2018
Answered: Steven Lord on 13 Apr 2018
Hi,
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?
Thanks!

  1 Comment

JFz
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;
etc...
then you can just use my attached copyprops() utility, which automates this.

  1 Comment

Sign in to comment.

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.

  0 Comments

Sign in to comment.

Sign in to answer this question.

Tags

Products