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(例如,如果变量不存在,则在您的情况下),然后检查变量是否具有正确的类型.