有没有办法将值分配给用户提供的变量名?
我想到了以下几点:
function varargout=my_fun(varargin)
for i=1:2:nargin
eval('varargin{i}=varargin{i+1}')
end
>> my_fun('a',1,'b',2)
>> a
1
>> b
2
但它没有用。
答案 0 :(得分:1)
您可以使用assignin
执行此操作,但我强烈建议您不要使用此类解决方案。它违反了可变范围的共同期望。除此之外,assignin
和eval
是混淆matlab编辑器的两个最佳选择,这会产生许多无用的建议和警告。
如果你真的需要这样的解决方案:
assignin('caller',varargin{i},varargin{i+1})
分配给来电者的工作空间。