Main Content

인수 유효성 검사 함수

MATLAB은 인수 유효성 검사에 사용하기 위한 함수를 정의해 두고 있습니다. 이들 함수는 유효성 검사에 일반적으로 사용되는 패턴을 지원하며 설명이 포함된 오류 메시지를 제공합니다. 다음 표에서는 MATLAB® 유효성 검사 함수를 분류하고 그 사용 방법을 설명합니다.

숫자형 값 특성

이름

의미

입력값에 대해 호출되는 함수

mustBePositive(value)

value > 0

gt, isreal, isnumeric, islogical

mustBeNonpositive(value)

value <= 0

ge, isreal, isnumeric, islogical

mustBeNonnegative(value)

value >= 0

ge, isreal, isnumeric, islogical

mustBeNegative(value)

value < 0

lt, isreal, isnumeric, islogical

mustBeFinite(value)

valueNaN 요소와 Inf 요소가 없습니다.

isfinite

mustBeNonNan(value)

valueNaN 요소가 없습니다.

isnan

mustBeNonzero(value)

value ~= 0

eq, isnumeric, islogical

mustBeNonsparse(value)

value가 희소 형식이 아닙니다.

issparse

mustBeSparse(value)

value가 희소 형식입니다.

issparse

mustBeReal(value)

value에 허수부가 없습니다.

isreal

mustBeInteger(value)

value == floor(value)

isreal, isfinite, floor, isnumeric, islogical

mustBeNonmissing(value)

value가 누락값을 포함할 수 없습니다.

ismissing

다른 값과 비교

이름

의미

입력값에 대해 호출되는 함수

mustBeGreaterThan(value,c)

value > c

gt, isreal, isnumeric, islogical

mustBeLessThan(value,c)

value < c

lt, isreal, isnumeric, islogical

mustBeGreaterThanOrEqual(value,c)

value >= c

ge, isreal, isnumeric, islogical

mustBeLessThanOrEqual(value,c)

value <= c

le, isreal, isnumeric, islogical

데이터형

이름

의미

입력값에 대해 호출되는 함수

mustBeA(value,classnames)

value가 특정 클래스여야 합니다.

클래스 정의 관계 사용

mustBeNumeric(value)

value가 숫자형이어야 합니다.

isnumeric

mustBeNumericOrLogical(value)

value가 숫자형 또는 논리형이어야 합니다.

isnumeric, islogical

mustBeFloat(value)

value가 부동소수점 배열이어야 합니다.

isfloat

mustBeUnderlyingType(value,typename)

value가 지정된 기본 유형을 가져야 합니다.

isUnderlyingType

크기

이름

의미

입력값에 대해 호출되는 함수

mustBeNonempty(value)

value가 비어 있지 않습니다.

isempty

mustBeScalarOrEmpty(value)value가 스칼라이거나 비어 있어야 합니다.

isscalar, isempty

mustBeVector(value)value가 벡터여야 합니다.

isvector

멤버 여부 및 범위

이름

의미

입력값에 대해 호출되는 함수

mustBeMember(value,S)

valueS의 멤버와 정확히 일치합니다.

ismember

mustBeInRange(value,lower,upper,boundflags)value가 범위 내에 있어야 합니다.

gt, ge, lt, le

텍스트

이름

의미

입력값에 대해 호출되는 함수

mustBeFile(path)

path가 파일을 가리켜야 합니다.

isfile

mustBeFolder(folder)path가 폴더를 가리켜야 합니다.

isfolder

mustBeNonzeroLengthText(value)

value가 0이 아닌 길이의 텍스트 조각이어야 합니다.

해당 없음

mustBeText(value)

value가 string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열이어야 합니다.

해당 없음

mustBeTextScalar(value)

value가 한 조각의 텍스트여야 합니다.

해당 없음
mustBeValidVariableName(varname)varname이 유효한 변수 이름이어야 합니다.

isvarname

유효성 검사 함수 정의하기

유효성 검사 함수는 함수 또는 속성에 들어오는 값에 대한 요구 사항을 검사하는 MATLAB 함수입니다. 유효성 검사 함수는 오류를 발생시킬 시점과 표시할 오류 메시지를 결정합니다.

유효성 검사에 사용되는 함수에는 다음과 같은 설계 요소가 있습니다.

  • 유효성 검사 함수는 출력값을 반환하거나 프로그램 상태를 변경하지 않습니다. 입력값의 유효성을 검사하는 것이 유일한 목적입니다.

  • 유효성 검사 함수는 유효성을 검사할 값을 인수로 받아야 합니다. 함수가 둘 이상의 인수를 받는 경우 첫 번째 입력 인수가 유효성을 검사할 값입니다.

  • 유효성 검사 함수는 입력값에만 의존합니다. 다른 값은 함수에서 사용할 수 없습니다.

  • 유효성 검사 함수는 유효성 검사에 실패할 경우 오류를 발생시킵니다.

MATLAB 유효성 검사 함수로는 수행할 수 없는 특정한 유효성 검사를 제공하고 싶다면 유효성 검사 함수를 직접 생성하는 것이 좋습니다. 유효성 검사 함수를 로컬 함수로 함수 파일 내에 만들거나 MATLAB 경로에 배치할 수 있습니다. 오류 메시지들이 섞이는 것을 피하려면 사용자 정의 유효성 검사 함수 내에서 함수 인수 유효성 검사를 사용하지 마십시오.

예를 들어, mustBeRealUpperTriangular 함수는 입력값을 실수 값의 상부 삼각 행렬로 제한합니다. 이 유효성 검사 함수는 istriu 함수와 isreal 함수를 사용합니다.

function mustBeRealUpperTriangular(a)
    if ~(istriu(a) && isreal(a))
        eidType = 'mustBeRealUpperTriangular:notRealUpperTriangular';
        msgType = 'Input must be a real-valued, upper triangular matrix.';
        error(eidType,msgType)
    end
end

인수 유형이 올바르지 않은 경우 함수는 오류를 발생시킵니다.

a = [1 2 3+2i; 0 2 3; 0 0 1];
mustBeRealUpperTriangular(a)
Input must be a real-valued, upper triangular matrix.

관련 항목