我正在寻找从其他工作区访问变量的方法,特别是从调用当前函数的工作区。
我知道在简单的情况下怎么做:

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

但是,想想一个situation函数,其中我的函数myFun被许多不同的函数调用(我无法编辑)我只知道他们每个人都有一个变量。
现在,我如何才能从调用x的工作区中看到变量x
所以我想我问题的关键是:
如何以编程方式导航到上述工作区?
以下是手动操作的方法:
设置断点
一旦断点被击中,使用myFun
找到x并查看它(或者用它做一些事情(例如用dbupevalin/save
按f5键

最佳答案

怎么样:

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

但是,从Matlab的文档来看,有一个限制:
evalin不能递归地用于计算表达式例如,evalin('caller','evalin(''caller'',''x'')'形式的序列不起作用。
但是,evalin不是一个很好的函数任何用法都应该避免。

10-08 04:14