2014-03-24 3 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 편집기를 혼동시키는 가장 좋은 옵션 중 2 가지이며, 많은 쓸데없는 권장 사항과 경고를 초래합니다.

assignin('caller',varargin{i},varargin{i+1})가 호출자의 작업 공간에 할당 할 : 당신이 정말로 이러한 솔루션이 필요한 경우

.

+0

고맙습니다. 그건 잘된거야! 나는 그것을 사용하는 것을 조심할 것이다 :) – HappyPy

관련 문제