exponenta event banner

Функции проверки аргументов

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)

value не имеет NaN и нет Inf элементы.

isfinite

mustBeNonNan(value)

value не имеет NaN элементы.

isnan

mustBeNonzero(value)

value ~= 0

eq, isnumeric, islogical

mustBeNonsparse(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, 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

Типы данных

Имя

Значение

Функции, вызываемые на входах

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)

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

ismember

mustBeInRange(value,lower,upper,boundflags)value должно находиться в пределах диапазона.

gt, ge, lt, le

Текст

Имя

Значение

Функции, вызываемые на входах

mustBeFile(path)

path должен ссылаться на файл.

isfile

mustBeFolder(folder)path должен ссылаться на папку.

isfolder

mustBeNonzeroLengthText(value)

value должен быть фрагментом текста с ненулевой длиной.

Неприменимо

mustBeText(value)

value должен быть строковым массивом, символьным вектором или массивом ячеек символьных векторов.

Неприменимо

mustBeTextScalar(value)

value должен быть одним фрагментом текста.

Неприменимо
mustBeValidVariableName(varname)varname должно быть допустимым именем переменной.

isvarname

Определение функций проверки

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

Функции, используемые для проверки, имеют следующие элементы конструкции:

  • Функции проверки не возвращают выходные данные и не изменяют состояние программы. Единственной целью является проверка достоверности входного значения.

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

  • Функции проверки зависят только от входных данных. Другие значения функции недоступны.

  • Функции проверки вызывают ошибку в случае сбоя проверки. Используя throwAsCaller во избежание отображения самой функции проверки в отображаемом сообщении об ошибке.

Создание собственной функции проверки полезно при необходимости предоставления определенной проверки, недоступной с помощью функций проверки 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.';
        throwAsCaller(MException(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.

Связанные темы