是否有类似于 assignin() 的东西来获取存在于另一个工作区中的变量并将其获取到本地工作区,例如就像访问函数中的基本工作区变量一样!?

我目前正在尝试实现的一个示例是:我有一个函数 bla(x),它接受一个参数。当未指定 x 时,该函数应自动使用基础 matlab 工作区中存在的 x (如果有 x )。

一些不错的东西

function bla(x)
  if(nargin == 0 && exist('x', 'base', 'var'))
    x = fetchin('base', 'x');
  end

  % ...
end

我知道 fetchin() 不存在,并且 exist() 不需要这样的第二个参数来检查某个工作区!
非常感谢!

最佳答案

Matlab 函数 evalin 可以做到:

x=evalin('base','x');

编辑:正如 Col Heather 所提到的,您可以使用 try/catch 语句来处理函数 evalin 可能产生的错误(例如,在您的情况下,如果该变量不存在),然后检查该变量是否具有正确的类型。

关于function - 从 Matlab 中的其他工作区访问变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8572177/

10-15 04:43