Функции валидации аргумента

MATLAB задает функции для использования в валидации аргумента. Эти функции поддерживают шаблоны общего использования для валидации и предоставляют описательные сообщения об ошибке. Эта таблица приводит функции валидации MATLAB, их значения и функции MATLAB, используемые ими.

Имя

Значение

Функции, обращенные входные параметры

mustBePositiveЗначение

value > 0

gtisrealisnumericislogical

mustBeNonpositiveЗначение

value <= 0

geisrealisnumericislogical

mustBeFiniteЗначение

value не имеет никакого NaN и никакой Inf элементы.

isfinite

mustBeNonNanЗначение

value не имеет никакого NaN элементы.

isnan

mustBeNonnegativeЗначение

value >= 0

geisrealisnumericislogical

mustBeNegativeЗначение

value < 0

ltisrealisnumericislogical

mustBeNonzeroЗначение

value ~= 0

eqisnumericislogical

mustBeGreaterThan(значение, c)

value > c

gtisscalarisrealisnumericislogical

mustBeLessThan(значение, c)

value < c

ltisrealisnumericislogical

mustBeGreaterThanOrEqual(значение, c)

value >= c

geisrealisnumericislogical

mustBeLessThanOrEqual(значение, c)

value <= c

leisrealisnumericislogical

mustBeNonemptyЗначение

value не пусто.

isempty

mustBeNonsparseЗначение

value не имеет никаких разреженных элементов.

issparse

mustBeNumericЗначение

value isnumeric.

isnumeric

mustBeNumericOrLogicalЗначение

value является числовым или логическим.

isnumericislogical

mustBeRealЗначение

value не имеет никакой мнимой части.

isreal

mustBeIntegerЗначение

value == floor(value)

isrealisfiniteполisnumericislogical

mustBeMemberЗначения

value точное совпадение для члена S.

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

Похожие темы