在Matlab中为变量名赋值

时间:2014-03-24 23:21:32

标签: matlab function variables

有没有办法将值分配给用户提供的变量名?

我想到了以下几点:

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

但它没有用。

1 个答案:

答案 0 :(得分:1)

您可以使用assignin执行此操作,但我强烈建议您不要使用此类解决方案。它违反了可变范围的共同期望。除此之外,assignineval是混淆matlab编辑器的两个最佳选择,这会产生许多无用的建议和警告。

如果你真的需要这样的解决方案:

assignin('caller',varargin{i},varargin{i+1})分配给来电者的工作空间。