从Matlab中的其他工作区访问变量?

tim*_*tim 12 workspace matlab scope function

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

我目前试图实现的一个例子是:我有一个bla(x)带一个参数的函数.如果x未指定,则该函数应自动使用x基本matlab工作空间中存在的函数(如果有x).

好的东西会

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

  % ...
end
Run Code Online (Sandbox Code Playgroud)

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

Aab*_*baz 18

Matlab函数evalin可以做到这一点:

x=evalin('base','x');
Run Code Online (Sandbox Code Playgroud)

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