局限性
evalin
不可递归用于计算表达式。例如,形式为 evalin('caller', 'evalin(''caller'', ''x'')')
的序列无效。
提示
MATLAB 基础工作区是从 MATLAB 命令行看到的工作区(不在调试器中时)。调用方工作区是调用当前运行函数的函数工作区。请注意,基础工作区(base)和调用方工作区(caller)在从 MATLAB 命令行调用的函数上下文中是等效的。
evalin('caller', expression)
只计算调用方工作区中的变量,它不计算调用方中的函数。因此,不能使用 evalin
构造调用方中定义的函数句柄。
在用 dbup
或 dbdown
更改本地工作区上下文后,如果在 MATLAB 调试器中使用 evalin('caller', expression)
,则 MATLAB 在从当前工作区上下文堆栈中高一级的函数上下文中计算表达式。
参考https://ww2.mathworks.cn/help/matlab/ref/evalin.html
参考https://zhidao.baidu.com/question/580592059.html
多看帮助文档