Main Content

가변 개수의 출력값을 받는 함수 정의하기

이 예제에서는 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     2

MATLAB®varargout 배열 내 순서에 따라 값을 출력값에 할당합니다. 예를 들면 first == varargout{1}과 같습니다.

출력 인수 목록 또는 출력값 목록의 끝에 varargout만 단독으로 사용할 수 있습니다. 예를 들면 다음과 같습니다.

function [x,y,varargout] = myfunction(a,b)

이 경우, varargout{1}은 함수가 반환하는 세 번째 출력값에 해당하므로, nargoutlength(varargout) + 2를 반환합니다.

참고 항목

|

관련 예제

세부 정보