我正在寻找一种从其他工作空间访问变量的方法,特别是调用当前函数的工作空间。
我知道如何在简单的情况下执行:
% Get a variable called `x` from the base workspace
x = evalin('base', 'x');
然而,想一下我的函数myFun
所在的situation被许多不同的函数调用(我无法编辑)。我只知道他们每个人都有一个变量x
。
现在,我如何能够从调用x
的工作空间中看到变量myFun
?
所以我想我的问题中的关键点是:
如何以编程方式导航到上述工作区?
以下是如何手动完成:
dbup
evalin
或save
/ load
)答案 0 :(得分:4)
怎么样:
x = evalin('caller', 'x')
然而,Matlab的文档中存在一个限制:
不能递归使用evalin来计算表达式。例如,形式为evalin的序列('caller','evalin(''caller'',''x'')')不起作用。
然而,evalin
不是一个很好的功能。任何用法都应该避免使用。