가변 개수의 입력값을 받는 함수 정의하기
이 예제에서는 varargin
을 사용하여 가변 개수의 입력 인수를 받는 함수를 정의하는 방법을 보여줍니다. varargin
인수는 셀형 배열로, 각 입력값을 셀 요소로 분리하여 함수 입력값을 포함합니다.
plotWithTitle.m
이라는 파일에 plot
함수에 대한 가변 개수의 입력값 쌍(x,y)과 제목(선택 사항)을 받는 함수를 생성합니다. 함수는 홀수 개수의 입력값을 받는 경우 마지막 입력값을 제목으로 간주합니다.
function plotWithTitle(varargin) if rem(nargin,2) ~= 0 myTitle = varargin{nargin}; numPlotInputs = nargin - 1; else myTitle = 'Default Title'; numPlotInputs = nargin; end plot(varargin{1:numPlotInputs}) title(myTitle)
varargin
이 셀형 배열이므로 각 셀의 내용에 액세스하려면 중괄호 {}
를 사용해야 합니다. 구문 varargin{1:numPlotInputs}
는 plot
함수에 대해 쉼표로 구분된 입력값 목록을 생성합니다.
두 개의 (x,y) 입력값 쌍과 하나의 제목을 사용하여 plotWithTitle
을 호출합니다.
x = [1:.1:10];
y1 = sin(x);
y2 = cos(x);
plotWithTitle(x,y1,x,y2,'Sine and Cosine')
입력 인수 목록 또는 입력값 목록의 끝에 varargin
만 단독으로 사용할 수 있습니다. 예를 들면 다음과 같습니다.
function myfunction(a,b,varargin)
이 경우, varargin{1}
은 함수에 전달되는 세 번째 입력값에 해당하므로, nargin
은 length(varargin) + 2
를 반환합니다.