본문 바로가기
PROGRAMMING/MATLAB

MATLAB 함수 입/출력 인자 개수 다른 경우 [nargin, nargout]

by BLADEBONE 2014. 2. 27.

MATLAB에서 함수를 만들어 사용하다 보면 입/출력 인자의 개수가 다른 경우에도 동일한 이름의 함수를 사용하고 싶을 때가 있다. 이때 사용할 수 있는 함수가 바로 nargin, nargout 이다. 풀어 적으면 Number of function arguments input 또는 output 이 된다. 즉 입력 또는 출력 인자의 개수란 뜻이다.



■ nargin


먼저, nargin의 경우 함수 내에서 nargin을 하게 되면 현재 함수 호출에 사용된 입력 인자의 개수를 알 수 있다.


즉 myFunction이라는 함수에 아래와 같이 입력을 하게 되면, nargin을 통해 각각 3과 4라는 값을 얻게 된다.


myFunction(a, b, c)인 경우, nrargin → 3


myFunction(a, b, c, d)인 경우, nrargin → 4



■ nargout


반대로 nargout의 경우, 함수 호출 시 출력값을 리턴할 인자의 개수를 아래와 같이 얻을 수 있다.


[a, b] = myFunction(a, b, c)인 경우, nargout → 2


[a, b, c] = myFunction(a, b, c)인 경우, nargout → 3


실제 함수에서는 아래와 유사한 형태로 사용될 수 있다.



※ nargin, nargout을 사용한 MATLAB 함수 예


function [out1, out2] = myFunction(in1, in2, in3, in4, in5)

% myFunction ...

...

if nargin < 5, in5 = 100; end

if nargin < 4, in4 = 100; end

if nargin < 3, in3 = 100; end

...

if nargout == 0

    plot(in1, in2);

elseif nargout == 1

    out1 = [result1 result2];

else

    out1 = result1;

    out2 = result2;

end

   


※ nargin, nargout을 사용한 MATLAB 함수 예 (실제 작성한 코드 및 결과)






더 자세한 내용은 아래 MathWorks 사이트를 참조하면 된다.


http://www.mathworks.co.kr/kr/help/matlab/ref/nargin.html






반응형

'PROGRAMMING > MATLAB' 카테고리의 다른 글

[Octave] GNU Octave 설치  (0) 2017.03.08
[MATLAB] Random Seed 지정  (0) 2015.01.05
m파일 하나에 여러 개의 함수 작성  (4) 2014.08.29
MATLAB 버전(version)과 릴리즈명(release name)  (0) 2014.07.11
MATLAB's Easter Egg  (0) 2012.08.30

댓글