2014-03-24 54 views
0

是否有一種方法可以爲用戶提供的變量名賦值?將值賦給Matlab中的變量名稱

我想到的東西沿着這些路線:

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

您可以使用assignin來做到這一點,但我強烈建議不要使用這樣的解決方案。它違反了變量範圍的共同期望。除此之外,assignineval是混淆matlab編輯器的兩個最佳選項,這會導致許多無用的建議和警告。

如果你真的需要這樣的解決方案:

assignin('caller',varargin{i},varargin{i+1})分配給呼叫者的工作空間。

+0

非常感謝!這很好!我會小心使用它,雖然:) – HappyPy