通常在运行长内存昂贵的程序时,我想清除除了一些特定变量之外的所有内容 如果想要删除只是clear varA varB
可以使用一些变量,但是删除除了这个特定变量以外的所有变量呢?
如上所述,clearvars
包括用于在清除余数时将变量保留在工作空间中的语法:
a = 1; b = 1; c = 1; d = 1; keepvars = {'c', 'd'}; clearvars('-except', keepvars{:});
哪个功能如预期.
喜欢clear
,它也可以适应regexp
匹配:
a1 = 1; a2 = 1; b = 1; c = 1; keepvars = 'a\d'; % regex pattern clearvars('-except', '-regexp', keepvars);
保留a1
和a2
正如预期的那样.
利用这一事实,即who
和whos
具有可存储在变量中的返回值.前者返回字符串的单元格数组,后者是结构数组.根据你的需要,前者就足够了:
%// don't delete these ' keepvars = {'varA','varB'}; %// delete these delvars = setdiff(who,keepvars); clear(delvars{:},'delvars');