다음: 함수로부터의 반환, 이전: 매개변수 무시하기, 상위 문서: 함수와 대본   [차례][찾아보기]


11.6 변수 길이 반환 목록

특별 varargin 매개변수가 사용한 것과 비슷한 구문으로 함수의 출력 매개변수 개수인 변수를 반환받을 수 있습니다. 함수의 출력 매개변수 개수를 반환하는 특별 매개변수 varargout를 사용합니다. varargin와 똑같이, varargout도 낱칸 배열에 요청한 출력 매개변수를 담아 반환합니다.

아래 예시 함수는 첫 번째 출력 매개변수를 1로, 두 번째 출력 매개변수를 2로 설정하는 방식으로 작동합니다.

function varargout = one_to_n ()
  for i = 1:nargout
    varargout{i} = i;
  endfor
endfunction

이 함수를 호출하면 이렇게 반환합니다.

[a, b, c] = one_to_n ()
     ⇒ a =  1
     ⇒ b =  2
     ⇒ c =  3

varargin (varargout)이 입력(출력) 매개변수의 끝에 자리하지 않으면, 특별하게 다루지 않고, 다른 일반 매개변수와 동급인 이름으로 다룹니다.

[r1, r2, …, rn] = deal (a)
[r1, r2, …, rn] = deal (a1, a2, …, an)

입력 매개변수를 짝이 맞는 출력 매개변수에 복사합니다.

입력 매개변수가 하나 밖에 없으면, 각 출력에 입력값을 복사합니다.

예시가

[a, b, c] = deal (x, y, z);

아래와 같고

a = x;
b = y;
c = z;

그리고

[a, b, c] = deal (x);

위와 아래가 같습니다.

a = b = c = x;

풀그림 짜기 안내: deal은 낱칸 배열과 구조체 방식의 반점 분리 목록을 자주 사용합니다. 동일한 기능을 해석기가 함수 호출 부담 없이 할 수 있으므로, 낱칸 배열과 구조체 방식의 반점 분리 목록을 사용하지 않아도 됩니다. 예시:

c = {[1 2], "Three", 4};
[x, y, z] = c{:}
⇒
   x =

      1   2

   y = Three
   z =  4

같이 보기: cell2struct, struct2cell, repmat.


다음: 함수로부터의 반환, 이전: 매개변수 무시하기, 상위 문서: 함수와 대본   [차례][찾아보기]