본문 바로가기
Programming

matlab, nargin, nargout 주의점.

by 단창 2014. 1. 22.

[matlab]


matlab에서 nargin, nargout은 각각, 함수의 input parameter 개수, output parameter 개수를 담는 변수이다. 

사용법은 


function [o1, o2, o3, o4] = test[in1, in2]


...


nargin

nargout

...


end



이렇게 내부에서 쓰거나 


함수 외부에서 

nargin('test')

nargout('test')

이렇게 하면 nargin은 2, nargout 은 4가 나와야 한다. 


하지만 함수 외부에서 쓰면 잘 나오는데 내부에서는 2,4가 나오지 않더라?? 

왜 인고 고민을 한참 해보니 


내부에서 사용하면 

정의된 parameter의 개수를 return해 주는게 아니라, 

실제 사용하고 있는 parameter의 개수를 리턴하기 때문이었다. 


즉, 

[a, b] = test[11,22]

이렇게 하면 

함수 내부의 

nargin은 2

nargout 도 2가 된다는 말이다. 


반응형