parse
함수 입력값 구문 분석
설명
예제
필수 입력값이 음수가 아닌지 검사하기
필수 입력값이 음수가 아닌 숫자형 스칼라인지 확인하는 입력값 구문 분석기 체계를 만듭니다. 구문 @(x)
는 입력값이 하나인 익명 함수의 핸들을 만듭니다.
p = inputParser;
argName = 'num';
validationFcn = @(x) (x > 0) && isnumeric(x) && isscalar(x);
addRequired(p,argName,validationFcn)
-1
과 같이 유효하지 않은 입력값에 대해 구문 분석합니다.
parse(p,-1)
The value of 'num' is invalid. It must satisfy the function: @(x)(x>0)&&isnumeric(x)&&isscalar(x).
입력값 구문 분석하기
필수 함수 입력값과 선택적 함수 입력값을 구문 분석하고 유효성 검사를 합니다.
findArea.m
파일에 함수를 만듭니다. findArea
함수는 width
입력 인수를 필요로 하고 가변적인 개수의 추가 입력값을 허용합니다. 입력값 구문 분석기 체계는 다음 인수 조건을 지정합니다.
width
(필수 인수). 필수 인수가 위치 입력값이므로,width
는findArea
함수의 첫 번째 인수여야 합니다. 입력값 구문 분석기는width
가 양의 스칼라 숫자형인지 확인합니다.height
(선택적 인수). 선택적 인수가 위치 인수이므로height
가findArea
함수의 인수이면 이 인수는 두 번째 인수여야 합니다. 입력값 구문 분석기는height
가 양의 스칼라이고 숫자형인지 확인합니다.'units'
와 이 인수와 연결된 값(이름-값 쌍). 이름-값 쌍은 선택 사항입니다.findArea
함수를 호출할 때 위치 인수 뒤에 이름-값 쌍을 순서에 상관없이 지정하십시오. 입력값 구문 분석기는'units'
에 대한 값이 string형인지 확인합니다.'shape'
와 이 인수와 연결된 값(다른 이름-값 쌍). 입력값 구문 분석기는'shape'
에 대한 값이expectedShapes
배열에 포함되어 있는지 확인합니다.
function a = findArea(width,varargin) defaultHeight = 1; defaultUnits = 'inches'; defaultShape = 'rectangle'; expectedShapes = {'square','rectangle','parallelogram'}; p = inputParser; validScalarPosNum = @(x) isnumeric(x) && isscalar(x) && (x > 0); addRequired(p,'width',validScalarPosNum); addOptional(p,'height',defaultHeight,validScalarPosNum); addParameter(p,'units',defaultUnits,@isstring); addParameter(p,'shape',defaultShape,... @(x) any(validatestring(x,expectedShapes))); parse(p,width,varargin{:}); a = p.Results.width*p.Results.height; end
findArea
함수를 여러 번 호출합니다. 입력값 구문 분석기는 이러한 함수 호출에 대해 오류를 생성하지 않습니다.
a = findArea(7); a = findArea(7,3); a = findArea(13,'shape','square'); a = findArea(13,'units',"miles",'shape','square');
입력값 구문 분석기 체계와 일치하지 않는 인수를 포함한 함수를 호출합니다. width
입력값으로 숫자가 아닌 값을 지정합니다.
a = findArea('text')
Error using findArea (line 14) The value of 'width' is invalid. It must satisfy the function: @(x)isnumeric(x)&&isscalar(x)&&(x>0).
'shape'
에 지원하지 않는 값을 지정합니다.
a = findArea(4,12,'shape','circle')
Error using findArea (line 14) The value of 'shape' is invalid. Expected input to match one of these values: 'square', 'rectangle', 'parallelogram' The input, 'circle', did not match any of the valid values.
입력 인수
p
— 입력값 구문 분석기 체계
inputParser
객체
입력값 구문 분석기 체계로, inputParser
객체로 지정됩니다.
argList
— 구문 분석하고 유효성을 검사할 입력값
쉼표로 구분된 목록(CSV)
구문 분석하고 유효성을 검사할 입력값으로, 쉼표로 구분된 목록(csv)으로 지정됩니다. argList
의 요소는 임의의 데이터형일 수 있습니다. 인수를 입력값 구문 분석기 체계에 추가하면 입력값 구문 분석기는 지정한 유효성 검사 함수를 사용하여 인수의 유효성을 판별합니다.
예: 'textA',13,mtxB
예: varargin{:}
확장 기능
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
버전 내역
R2007a에 개발됨
참고 항목
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)