用函数重载 clear()
很容易。但是如何访问上游函数(从中调用 clear
)的工作空间来清除工作空间? builtin('clear')
只会清除重载函数的工作空间。
function ret = someFun(a,b)
ret = a + b;
clear
ret = 1;
end
function clear()
persistent boring
if isempty(boring), boring = 0; end
boring = boring + 1;
builtin('clear')
end
屏幕截图:调用重载的 clear
函数后上游函数的工作区
最佳答案
使用evalin
使用 'caller'
选项。即更换你的线
builtin('clear')
通过
evalin('caller', 'builtin(''clear'')')
这将清除调用函数工作区中的所有变量。
如果您想清除 Matlab 基础工作区中的所有变量,请使用 'base'
选项:
evalin('base', 'builtin(''clear'')')
关于matlab - 如何重载清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30649644/