Matlab导航功能工作区

时间:2013-09-12 15:23:00

标签: matlab function workspace

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

我知道如何在简单的情况下执行

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

然而,想一下我的函数myFun所在的situation被许多不同的函数调用(我无法编辑)。我只知道他们每个人都有一个变量x

现在,我如何能够从调用x的工作空间中看到变量myFun

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

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


以下是如何手动完成

  1. 设置断点
  2. 点击断点后,使用dbup
  3. 查找x并查看它(或使用它执行某些操作(例如evalinsave / load
  4. 点击f5

1 个答案:

答案 0 :(得分:4)

怎么样:

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

然而,Matlab的文档中存在一个限制:

  

不能递归使用evalin来计算表达式。例如,形式为evalin的序列('caller','evalin(''caller'',''x'')')不起作用。

然而,evalin不是一个很好的功能。任何用法都应该避免使用。