Main Content

addOptional

입력값 구문 분석기 체계에 선택적 위치 인수 추가

설명

예제

addOptional(p,argName,defaultVal)은 선택적 위치 입력 인수 argName을 입력값 구문 분석기 체계 p에 추가합니다. 함수에 대한 입력값에 이 선택적 입력값에 대한 값이 포함되어 있지 않으면 입력값 구문 분석기는 이 인수에 defaultVal 값을 지정합니다.

예제

addOptional(p,argName,defaultVal,validationFcn)은 입력 인수에 대한 유효성 검사(Validation) 함수를 지정합니다.

예제

모두 축소

inputParser 객체를 만들고 선택적 입력값을 입력값 구문 분석기 체계에 추가합니다. 인수에 myinput 이름을 지정하고, 디폴트 값 13을 지정합니다.

p = inputParser;
argName = 'myInput';
defaultVal = 13;
addOptional(p,argName,defaultVal)

입력값 없이 parse 함수를 호출하고 결과를 표시합니다.

parse(p)
p.Results
ans = struct with fields:
    myInput: 13

입력값을 42로 사용하여 parse 함수를 호출하고 결과를 표시합니다.

parse(p,42)
p.Results
ans = struct with fields:
    myInput: 42

디폴트 값이 1이고 이름이 num인 선택적 입력값이 0보다 큰 숫자형 스칼라인지 확인합니다.

입력값 구문 분석기 체계를 만듭니다. 유효성 검사 함수의 경우, @(x)는 입력값을 하나 받는 익명 함수에 대한 핸들을 생성합니다.

p = inputParser;
argName = 'num';
defaultVal = 1;
validationFcn = @(x) isnumeric(x) && isscalar(x) && (x > 0);
addOptional(p,argName,defaultVal,validationFcn)

-1과 같은 잘못된 입력 인수를 구문 분석합니다.

parse(p,-1)
The value of 'num' is invalid. It must satisfy the function: @(x)isnumeric(x)&&isscalar(x)&&(x>0).

validateattributes를 사용하여 유효성 검사 함수를 정의합니다. 인수가 양의 숫자형으로 짝수인지 확인합니다.

validationFcn = @(x) validateattributes(x,{'numeric'},...
    {'even','positive'});

디폴트 값 1을 가진 evenPosNum 선택적 인수를 포함하는 입력값 구문 분석기 체계를 만듭니다. validationFcn을 사용하여 입력 인수의 유효성을 검사합니다.

p = inputParser;
argName = 'evenPosNum';
defaultVal = 1;
addOptional(p,argName,defaultVal,validationFcn)

입력 문자열을 구문 분석합니다. 구문 분석에 실패합니다.

parse(p,"hello")
The value of 'evenPosNum' is invalid. Expected input to be one of these types:

numeric

Instead its type was string.

홀수를 구문 분석합니다. 구문 분석에 실패합니다.

 parse(p,13)
The value of 'evenPosNum' is invalid. Expected input to be even.

양의 짝수를 구문 분석합니다. 구문 분석을 통과합니다.

parse(p,42)

입력 인수

모두 축소

입력값 구문 분석기 체계로, inputParser 객체로 지정됩니다.

입력 인수의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

예: 'firstName'

예: 'address'

데이터형: char | string

입력값의 디폴트 값으로, 임의의 데이터형으로 지정됩니다. parse 함수는 입력값을 구문 분석할 때 argName이 함수에 대한 입력값이 아닌 경우, argName에 값 defaultVal을 할당합니다.

인수의 유효성을 검사하는 함수로, 함수 핸들로 지정됩니다.

함수 핸들은 true 또는 false를 반환하거나 테스트를 통과하거나 오류를 발생시키는 함수와 연결되어야 합니다. 두 가지 함수 모두 단일 입력 인수를 받아야 합니다.

예: @(s)isstring(s)

예: @(x)isnumeric(x)&&isscalar(x)

예: @(n)validateattributes(n,{'numeric'},{'nonnegative'})

데이터형: function_handle

  • addOptional 함수로 입력값 구문 분석기 체계에 추가된 인수는 위치 입력값입니다. 따라서, 함수에 전달되는 순서와 같은 순서로 인수를 입력값 구문 분석기 체계에 추가하십시오.

  • 선택적 string형 인수에 대해 유효성 검사 함수를 지정하십시오. 유효성 검사 함수가 없으면, 입력값 구문 분석기는 string형 인수를 잘못된 파라미터 이름으로 해석하고 오류를 발생시킵니다.

  • 입력값 구문 분석기 체계에 개별 인수를 추가하려면 addOptional을 사용하십시오. 선택적 이름-값 쌍을 구문 분석하려면 addParameter 함수를 사용하십시오.

버전 내역

R2007a에 개발됨