가변 개수의 출력값을 받는 함수 정의하기
R2026b이 예제에서는 varargout을 사용하여 가변 개수의 출력 인수를 반환하는 함수를 정의하는 방법을 보여줍니다. varargout은 함수 출력값들로 구성된 셀형 배열로, 각각의 함수 출력값은 셀에 들어 있습니다.
magicfill.m이라는 파일에, 요청된 각 출력값에 마방진을 할당하는 함수를 생성합니다.
function varargout = magicfill nOutputs = nargout; varargout = cell(1,nOutputs); for k = 1:nOutputs varargout{k} = magic(k); end
중괄호 {}를 사용하여 인덱싱하면 셀의 내용이 업데이트됩니다.
magicfill을 호출하고 세 개의 출력값을 요청합니다.
[first,second,third] = magicfill
first =
1
second =
1 3
4 2
third =
8 1 6
3 5 7
4 9 2MATLAB®은 varargout 배열 내 순서에 따라 값을 출력값에 할당합니다. 예를 들면 first == varargout{1}과 같습니다.
출력 인수 목록 또는 출력값 목록의 끝에 varargout만 단독으로 사용할 수 있습니다. 예를 들면 다음과 같습니다.
function [x,y,varargout] = myfunction(a,b)
이 경우, varargout{1}은 함수가 반환하는 세 번째 출력값에 해당하므로, nargout은 length(varargout) + 2를 반환합니다.