Clearing a particular class definition from memory

I know that `clear classes` will clear all classes from memory, but I cannot find a way to clear one particular class. Entering
>> clear classname
does not work. Is there a way to do this?
In other forums, clearing all instances of the class, either manually or by automated means, has been proposed. This doesn't work however, as the following example shows. The constant property data remains.
classdef myclass
properties (Constant)
prop=17;
end
end
>> obj=myclass; myclass.prop
ans =
17
>> clear obj; myclass.prop
ans =
17

 Accepted Answer

myclass.prop is possible because Constant=true. It doesn't require the class to be in memory. obj=myclass; is not needed.

4 Comments

Hi per,
Yes, I know that. My question, though, is how to clear the property from memory, along with the rest of the class definition, without the nuclear bomb that is 'clear classes'. The property consumes no memory until the class is first referenced and I'd like to return to that state.
Yes, it might be me not understanding your question. However, I think the example below shows that clear myclass works as expected. At least, inmem indicates that.
>> clear all, clear classes
>> myclass.prop
ans =
17
>> inmem
ans =
'codetools\private\dataviewerhelper'
'workspacefunc'
'onCleanup'
'myclass'
>> clear myclass
>> inmem
ans =
'codetools\private\dataviewerhelper'
'workspacefunc'
'onCleanup'
with
>> version
ans =
8.1.0.604 (R2013a)
OK, silly mistake on my part. The very act of inspecting myclass.prop reloads it into memory!
Thanks.
Footnote. Using the Task Manager, I find that `clear classname` does not clear existing class instances from memory and does not clear Constant property memory while any objects exists. To clear property memory, it is necessary that both, not just one, of the following are done
  1. Clear all class instances
  2. Issue `clear classname`
Moreover, it must be done in the above order. Reversing the order will leave Constant property data stuck in memory (as of R2013b) until `clear classes` is issued.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 4 Feb 2014

Edited:

on 4 Feb 2014

Community Treasure Hunt

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

Start Hunting!