Matlab 导航函数工作区



我正在寻找一种从其他工作区访问变量的方法,特别是调用当前函数的工作区。

我知道在简单的情况下该怎么做

% Get a variable called `x` from the base workspace
x = evalin('base', 'x');

但是,想想我的函数myFun的情况,被许多不同的函数调用(我无法编辑)。而且我只知道他们每个人都会有一个可变的x.

现在,如何从调用myFun的工作空间中查看变量x

所以我想我问题的关键点是:

如何以编程方式导航到上述工作区?


以下是手动完成的方法

  1. 设置断点
  2. 命中断点后,请使用dbup
  3. 找到 x 并查看它(或用它做一些事情(例如使用 evalinsave/load
  4. 点击 f5

怎么样:

x = evalin('caller', 'x')

但是,从 Matlab 的文档来看,有一个限制:

evalin 不能递归用于计算表达式。例如,形式为

evalin('caller','evalin(''caller', ''x')') 的序列不起作用。

但是,evalin不是一个很棒的功能。恕我直言,应避免任何使用。

最新更新