"Object Life-Cycle Management MATLAB implements a strategy for object life-cycle management that supports destructors and destroys objects as soon as they become unreachable from any MATLAB workspace. The MATLAB language has always managed memory allocation by destroying workspace variables when a function exits, either through an error or through a normal return to the calling context. We wanted to preserve this simple model but also extend it to handle objects that might persist beyond the execution of a function (by being returned to a calling function or stored in some other object returned to a calling function). A MATLAB handle class can define a delete method that behaves very much like a destructor in languages like C++ (Figures 3a and 3b). In MATLAB, a delete method is called just before an object is destroyed because the object can no longer be accessed from any MATLAB variable. The delete method can be used to close a file, close an external application, or notify another object that needs to react to the destruction of the first object. It is defined by the handle class, and only handle classes have destructors in MATLAB. "
"Some programmers might find it strange that non-handle objects have no destructors. Since MATLAB object destruction is always automated, a non-handle object that holds other objects does not need to do anything to destroy those other objects."