该命令clear classes
清除当时在内存中加载的所有类定义。
是否有可能只清除特定的类定义?
编辑:我是从内存中,而不是类实例删除特定的类定义有趣。
该命令clear classes
清除当时在内存中加载的所有类定义。
是否有可能只清除特定的类定义?
编辑:我是从内存中,而不是类实例删除特定的类定义有趣。
我就遇到了这个问题我自己,当我写我的新HPF类。 于是,我尝试了一些东西,因为当我在调试新的类我有很多的更改,然后测试了。
“清除功能的”没有帮助。 我甚至尝试“明确HPF”。 但是,清除所有情况似乎确实如此。 例如:
>> x = hpf(3);
>> x+2
ans =
5
>> whos
Name Size Bytes Class Attributes
ans 1x1 248 hpf
x 1x1 248 hpf
y 1x1 8 double
所以,现在我做了一个简单的改变到类,并将其保存。
>> z = hpf(17);
Warning: The class file for 'hpf' has been changed; but the change cannot be applied because objects based on the old class file still exist. If you use
those objects, you might get unexpected results. You can use the 'clear' command to remove those objects. See 'help clear' for information on how to remove
those objects.
>> clear functions
>> clear hpf
>> clear x
>> clear z
>> x = hpf(3);
Warning: The class file for 'hpf' has been changed; but the change cannot be applied because objects based on the old class file still exist. If you use
those objects, you might get unexpected results. You can use the 'clear' command to remove those objects. See 'help clear' for information on how to remove
those objects.
所以,我还是得到一个警告,告诉我,MATLAB仍然存在问题。 不过,我仍然在内存中,很容易被遗忘,ANS有一个HPF实例。
>> clear ans
>> clear x
>> whos
Name Size Bytes Class Attributes
y 1x1 8 double
>> x = hpf(3);
>> x+23
ans =
26
只要我删除的情况下也是如此,MATLAB不再给我一个警告。 请注意,我从来没有发出一个“清楚的类”命令。 变量Y,双,仍然存在证明了这一事实。
这是做这件事:
%设定ClassName
,以匹配其实例要清除类的名称。
ClassName = 'MyClass';
%下面的代码:
VarsStruct = whos;
VarsCellArray = cat(3, cellstr(char(VarsStruct(:).name)), cellstr(char(VarsStruct(:).class)));
ClassInstanceIndices = find(ismember(VarsCellArray(:,:,2), ClassName));
ClassInstanceNames = VarsCellArray(ClassInstanceIndices,:,1)';
clear(ClassInstanceNames{:});
要清除类的定义,包括所有的常量属性数据,有必要做两个以下
clear classname
。 它必须在上面的顺序进行。 颠倒次序将离开停留在内存不变的性质数据(R2013b的),直到clear classes
发出。