이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

인수 유효성 검사 함수

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

이름

의미

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

mustBePositive(value)

value > 0

gt, isreal, isnumeric, islogical

mustBeNonpositive(value)

value <= 0

ge, isreal, isnumeric, islogical

mustBeFinite(value)

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

isfinite

mustBeNonNan(value)

valueNaN 요소가 없습니다.

isnan

mustBeNonnegative(value)

value >= 0

ge, isreal, isnumeric, islogical

mustBeNegative(value)

value < 0

lt, isreal, isnumeric, islogical

mustBeNonzero(value)

value ~= 0

eq, isnumeric, islogical

mustBeGreaterThan(value,c)

value > c

gt, isscalar, 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

mustBeNonempty(value)

value가 비어 있지 않습니다.

isempty

mustBeNonsparse(value)

value에 희소 요소가 없습니다.

issparse

mustBeNumeric(value)

value가 숫자형입니다.

isnumeric

mustBeNumericOrLogical(value)

value가 숫자형이거나 논리형입니다.

isnumeric, islogical

mustBeReal(value)

value에 허수부가 없습니다.

isreal

mustBeInteger(value)

value == floor(value)

isreal, isfinite, floor, isnumeric, islogical

mustBeMember(value,S)

valueS의 구성원과 정확히 일치합니다.

ismember

유효성 검사 함수 정의하기

유효성 검사 함수는 입력값의 유효성을 검사하기 위해 설계된 일반 MATLAB® 함수입니다. 유효성 검사에 사용되는 함수는 다음과 같은 조건을 충족해야 합니다.

  • 잠재적인 값을 입력 인수로 받습니다.

  • 값을 반환하지 않습니다.

  • 유효성 검사에 실패하면 오류를 발생시킵니다.

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

예를 들어, ImgData 함수는 로컬 함수를 사용하여 Data 입력값을 특정 범위의 숫자형 값으로 제한하는 유효성 검사기를 정의합니다. mustBeNumeric 유효성 검사기는 기존 함수입니다.

function ImgData(Data)
    arguments
        Data {mustBeNumeric, mustBeInRange(Data,[0,255])}
    end

    % Function code
    imagesc(Data)
end

% Custom validation function
function mustBeInRange(arg,b)
    if any(arg(:) < b(1)) || any(arg(:) > b(2))
        error(['Value assigned to Data is not in range ',...
            num2str(b(1)),'...',num2str(b(2))])
    end
end

Data 입력 인수는 범위 0~255의 값을 가진 임의 크기의 숫자형 배열이 될 수 있습니다. 값이 이 요구 사항을 충족하지 못하면 MATLAB은 오류를 발생시킵니다.

ImgData(randi(300,10,10))
Error using ImgData
Invalid input argument at position 1. Value assigned to Data is not in range 0...255

관련 항목