如何清除所有变量,但需要清除所有变量

And*_*uri 10 matlab

通常在运行长内存昂贵的程序时,我想清除除了一些特定变量之外的所有内容 如果想要删除只是clear varA varB可以使用一些变量,但是删除除了这个特定变量以外的所有变量呢?

exc*_*aza 20

如上所述,clearvars包括用于在清除余数时将变量保留在工作空间中的语法:

a = 1; b = 1; c = 1; d = 1;
keepvars = {'c', 'd'};

clearvars('-except', keepvars{:});
Run Code Online (Sandbox Code Playgroud)

哪个功能如预期.

喜欢clear,它也可以适应regexp匹配:

a1 = 1; a2 = 1; b = 1; c = 1;
keepvars = 'a\d'; % regex pattern

clearvars('-except', '-regexp', keepvars);
Run Code Online (Sandbox Code Playgroud)

保留a1a2正如预期的那样.


And*_*eak 10

利用这一事实,即whowhos具有可存储在变量中的返回值.前者返回字符串的单元格数组,后者是结构数组.根据你的需要,前者就足够了:

%// don't delete these '
keepvars = {'varA','varB'};

%// delete these
delvars = setdiff(who,keepvars);
clear(delvars{:},'delvars');
Run Code Online (Sandbox Code Playgroud)