Main Content

addParameter

입력값 구문 분석기 체계에 선택적 이름-값 쌍의 인수 추가

설명

예제

addParameter(p,paramName,defaultVal)은 선택적 이름-값 쌍 인수의 파라미터 이름을 입력값 구문 분석기 체계에 추가합니다. 함수에 대한 입력값이 선택적 이름-값 쌍을 포함하지 않으면 입력값 구문 분석기는 paramName에 값 defaultVal을 지정합니다.

addRequired 함수와 addOptional 함수를 사용하여 추가하는 위치 입력값과는 달리 addParameter를 사용하여 추가하는 각 파라미터는 2개의 입력 인수에 해당합니다. 그중 하나는 이름이고 다른 하나는 값입니다.

예제

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

addParameter(___,'PartialMatchPriority',matchPriorityValue)는 충돌하는 파라미터 이름의 부분 일치에 대한 우선 순위를 지정합니다. 입력값 구문 분석기 체계는 우선 순위 값이 더 작은 이름을 우선적으로 선택합니다. 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 이 옵션과 함께 사용하십시오.

예제

모두 축소

inputParser 객체를 만들고 이름-값 쌍을 입력값 체계에 추가합니다.

p = inputParser;
paramName = 'myParam';
defaultVal = 0;
addParameter(p,paramName,defaultVal)

파라미터 이름과 파라미터 값을 모두 parse 메서드로 전달하고 결과를 표시합니다.

parse(p,'myParam',100);
p.Results
ans = struct with fields:
    myParam: 100

디폴트 값이 1인 myParam에 대응하는 값이 0보다 큰 숫자형 스칼라인지 확인합니다.

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

p = inputParser;
paramName = 'myParam';
defaultVal = 1;
errorMsg = 'Value must be positive, scalar, and numeric.'; 
validationFcn = @(x) assert(isnumeric(x) && isscalar(x) ...
    && (x > 0),errorMsg);
addParameter(p,paramName,defaultVal,validationFcn)

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

parse(p,'myparam',-1)
The value of 'myparam' is invalid. Value must be positive, scalar, and numeric.

validateattributes를 사용하여 유효성 검사 함수를 정의합니다. 인수가 비어 있지 않은 문자형 벡터인지 검증합니다.

validationFcn = @(x) validateattributes(x,{'char'},{'nonempty'});

파라미터 이름이 myName이고 디폴트 값이 'John Doe'인 선택적 이름-값 쌍의 인수를 포함하는 입력값 구문 분석기 체계를 만듭니다. validationFcn을 사용하여 입력 인수의 유효성을 검사합니다.

p = inputParser;
paramName = 'myName';
defaultVal = 'John Doe';
addParameter(p,paramName,defaultVal,validationFcn)

아래와 같이 myName을 숫자로 정의해 보겠습니다. 구문 분석에 실패합니다.

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

char

Instead its type was double.

아래와 같이 문자형 벡터를 구문 분석해 보겠습니다. 구문 분석에 통과합니다.

parse(p,'myName','George')

입력 인수

모두 축소

입력값 구문 분석기 체계로, 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

충돌하는 파라미터 이름의 부분 일치에 대한 우선 순위로, 양의 정수로 지정됩니다. 입력값 구문 분석기 체계는 우선 순위 값이 더 작은 이름을 우선적으로 선택합니다. 부분 파라미터 이름들이 모호하고 우선 순위가 같다면 parse가 오류를 발생시킵니다. 이름이 모호하지만, 우선 순위 값이 다르다면 parse는 일치한 이름을 나타내는 경고를 발생시킵니다.

  • 파라미터 이름-값 쌍은 선택적 입력값입니다. 함수를 호출할 때, 이름-값 쌍은 위치 인수 뒤에서 순서에 상관없이 나타날 수 있습니다. 이러한 쌍은 일반적인 형식 Name1,Value1,...,NameN,ValueN을 취합니다.

버전 내역

R2013b에 개발됨