Copy / Clone method for handle and hgsetget class

Enable deep copying of child objects of classes handle or hgsetget
Updated 25 Jan 2012

View License

The handle or hgsetget classes miss a method to make deep copies of objects. The two classes "handleplus" and "hgsetgetplus" take care of this.

To use these classes, ...
- simply put them somewhere on your Matlab path.
- in classdef-files change instances of
"classdef MyClass < handle" (or hgsetget)
"classdef MyClass < handleplus" (or hgsetgetplus)

Suppose you have defined a "MyClass" as child of "handleplus". Deep copies are now created as follows:
>> OBJ = MyClass;
>> OBJ_new = OBJ.copy;

Some short notes:
- This implementation (hopefully) also handles deep copying of inherited private or protected properties (s. discussion "Clone Handle Object - using MATLAB OOP" -> link in acknowledgments).
- It handles properties, which contain handle-objects
- It does not handle cyclic references (s.

Please read the help for these files for more details and report any bugs.



Cite As

Sebastian Hölz (2024). Copy / Clone method for handle and hgsetget class (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2011b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Programming in Help Center and MATLAB Answers

Inspired by: Clone Handle Object - using MATLAB OOP

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes