이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
varargin
가변 길이 입력 인수 목록
구문
설명
varargin
은 함수 정의문의 입력 변수로, 이를 사용하면 함수가 임의 개수의 입력 인수를 받을 수 있습니다. 소문자를 사용하여varargin
을 지정하고, 명시적으로 선언한 입력값 다음에 마지막 입력 인수로 포함시켜야 합니다.
함수가 실행되면varargin
은 1×N 셀형 배열이 되고, 여기서 N은 명시적으로 선언된 입력값 다음에 함수가 받게 되는 입력값 개수입니다. 그러나 명시적으로 선언된 입력값 다음에 함수가 입력값을 받지 못한 경우varargin
은빈셀형배열입니다。
예제
가변적인 개수의 입력값을 받는 함수
이름이acceptVariableNumInputs.m
인 파일에 가변적인 개수의 입력값을 받아 그 입력값의 값을 각각 표시하는 함수를 정의합니다.
typeacceptVariableNumInputs
function acceptVariableNumInputs(varargin) disp("Number of input arguments: " + nargin) celldisp(varargin) end
여러 개의 입력값을 포함한 함수를 호출합니다.
acceptVariableNumInputs(ones(3),'some text',pi)
Number of input arguments: 3 varargin{1} = 1 1 1 1 1 1 1 1 1 varargin{2} = some text varargin{3} = 3.1416
varargin
과 선언된 입력값
이름이definedAndVariableNumInputs.m
인 파일에, 두 개의 입력값을 기본으로 받고 추가 개수의 입력값을 허용하는 함수를 정의합니다.
typedefinedAndVariableNumInputs
function definedAndVariableNumInputs(X,Y,varargin) disp("Total number of input arguments: " + nargin) formatSpec = "Size of varargin cell array: %dx%d"; str = compose(formatSpec,size(varargin)); disp(str) end
여러 개의 입력값을 포함한 함수를 호출합니다.
definedAndVariableNumInputs(7,pi,rand(4),datetime('now'),'hello')
Total number of input arguments: 5 Size of varargin cell array: 1x3
2개의 입력값을 포함하여 함수를 호출합니다.varargin
은빈셀형배열입니다。
definedAndVariableNumInputs(13,42)
Total number of input arguments: 2 Size of varargin cell array: 0x0
가변적인 개수의 입력값과 출력값
이름이variableNumInputAndOutput.m
인 파일에 가변적인 개수의 입력값과 출력값을 받는 함수를 정의합니다.
typevariableNumInputAndOutput
function varargout = variableNumInputAndOutput(varargin) disp(['Number of provided inputs: ' num2str(length(varargin))]) disp(['Number of requested outputs: ' num2str(nargout)]) for k = 1:nargout varargout{k} = k; end end
입력값 2개와 출력값 3개를 포함한 함수를 호출합니다.
[d,g,p] = variableNumInputAndOutput(6,'Nexus')
Number of provided inputs: 2 Number of requested outputs: 3
d = 1
g = 2
p = 3
입력값이나 출력값 없이 함수를 다시 호출합니다.
variableNumInputAndOutput
Number of provided inputs: 0 Number of requested outputs: 0
함수 래퍼 만들기
작업 폴더에 있는 파일에서 빨간색 선을 플로팅하는 plot 함수에 대한 래퍼를 만듭니다.redplot
함수는 가변 길이 입력 인수 목록을 받아서 가변 길이 출력 인수 목록을 반환합니다. 이것은 선 색을 빨간색으로 설정하고 기타 입력값을plot
함수에 전달합니다. 이 함수 래퍼를 사용하여redplot
에plot
과 동일한 입력값을 전달하고 선 색이 빨간색임을 지정해 주지 않을 수 있습니다.
typeredplot.m
function varargout = redplot(varargin) [varargout{1:nargout}] = plot(varargin{:},'Color',[1,0,0]); end
redplot
을 사용하여 선 플롯을 생성합니다.
x = 0:pi/100:2*pi; y = sin(x); redplot(x,y)
redplot
을 다시 호출하고plot
함수에 전달할 입력 인수와 출력 인수를 지정합니다.
h = redplot(x,y,'Marker','o','MarkerEdgeColor','green');
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
varargin
을 사용하여 진입점(최상위) 함수에 대한 인수를 정의하는 경우, 코드 생성기는 고정된 개수의 입력 인수를 사용하는 C/C++ 함수를 생성합니다. 코드 생성 시 지정하는 인수의 개수에 따라 인수의 고정 개수가 결정됩니다.varargin
에는 쓸 수 없습니다. 입력 인수에 쓰고 싶다면, 먼저 입력 인수를 지역 변수에 복사하십시오.varargin
에 대한 인덱스는 컴파일타임 상수여야 합니다.
버전 내역
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)