특별 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.