使用函数重载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
函数后上游函数的工作空间
答案 0 :(得分:4)
将evalin
与'caller'
选项一起使用。也就是说,替换你的行
builtin('clear')
通过
evalin('caller', 'builtin(''clear'')')
这将清除调用函数的工作空间中的所有变量。
如果您想要清除Matlab基础工作区中的所有变量,请使用'base'
选项:
evalin('base', 'builtin(''clear'')')