특별 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
)이 입력(출력) 매개변수의 끝에 자리하지 않으면,
특별하게 다루지 않고, 다른 일반 매개변수와 동급인 이름으로 다룹니다.
입력 매개변수를 짝이 맞는 출력 매개변수에 복사합니다.
입력 매개변수가 하나 밖에 없으면, 각 출력에 입력값을 복사합니다.
예시가
[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.