Объявите валидацию аргумента функции
arguments
argName1 (dimensions) dataType {validators} = defaultValue
...
argNameN ...
end
arguments (Repeating)
...
end
arguments ... end объявляет входные параметры для функции. Блок аргументов является дополнительным. Если вы включаете arguments блокируйтесь, это должно появиться перед первой исполняемой линией функции. Функции могут включать несколько arguments блоки.
Каждый аргумент может иметь одно или несколько ограничений или значение по умолчанию, как показано в этом синтаксисе:
argName (dimensions) dataType {validators} = defaultValue
— Введите размер в виде списка, разделенного запятыми двух или больше чисел, таких как (dimensions)(1,2), (3,5,2), или (1,:). Двоеточие позволяет любую длину в той размерности. не может включать выражения.(dimensions)
Размерности входа должны совпадать точно или быть compatible с размером, заданным с (dimensions). Например, (dimensions)(1,:) указывает, что вход должен быть 1 n вектором-строкой, но n-by-1 вектор-столбец совместим. Функция изменяет вход вектора-строки в вектор-столбец. Точно так же размер (2,3) позволяет скалярный вход, но он расширяет вход до матрицы 2 на 3. Смотрите Совместимые Размеры Массивов для Основных Операций для получения дополнительной информации.
— Тип данных в виде имени класса, такого как dataTypedouble. Вход должен быть заданным типом или типом, который может быть преобразован в тот тип. Например, функция, которая задает double принимает значения типа single и преобразует их в double.
— Список, разделенный запятыми функций валидации, такой как {validators}mustBeNumeric и mustBeScalarOrEmpty, заключенный в фигурные скобки. Ошибка функций валидации, когда входные параметры не совпадают со своими условиями. В отличие от , функции валидации не изменяют входные параметры. Для списка функций валидации смотрите Функции Валидации Аргумента.dataType
— Значения по умолчанию должны соответствовать заданному размеру, ввести, и правила валидации. Значением по умолчанию может также быть выражение. Определение значения по умолчанию приводит дополнительный аргумент. Дополнительные аргументы должны быть расположены после обязательных аргументов в функциональной подписи и в defaultValuearguments блок.
Для аргументов name-value, использует форму arg, где nv.name имя структуры в функциональной подписи и nv имя аргумента в блоке аргументов. Например, задайте функцию, которая принимает аргументы name-value с помощью структуры под названием nameoptions.
y = myFunction(x,options)
В блоке аргументов задайте имена для аргументов name-value как поля:
arguments
x
options.Name1
options.Name2
end Для получения дополнительной информации об использовании arguments блоки в целом, смотрите аргументы Block Syntax.
arguments (Repeating) ... end объявляет повторяющиеся аргументы.
Например, если вы создаете функцию с именем myplot с повторяющимися аргументами XY, и style, функция принимает несколько наборов этих трех аргументов, таких как myplot(x1,y1,style1,x2,y2,style2)MATLAB® создает массив ячеек, который содержит все значения, переданные в для того аргумента.
Функции могут включать только один повторяющийся блок аргументов. Если функция включает и повторение и аргументы name-value, объявите аргументы name-value в их собственном, отдельном блоке аргументов после повторяющегося блока аргументов.
Для получения дополнительной информации о повторяющихся аргументах смотрите Повторяющиеся Аргументы.
Блоки аргумента не поддерживаются во вложенных функциях, абстрактных методах или методах деструктора класса Handle.
Используя тип данных ограничения могут привести к неявным преобразованиям входных параметров. Например:
function y = myFunction(inputArg1)
arguments
inputArg1 (1,1) double
end
..."123" как входной параметр, MATLAB преобразует строку в числовое значение 123 из типа double.Функции валидации не изменяют входные значения ни в каком случае, так чтобы избежать преобразования типа данных, используют одну или несколько функций блока проверки допустимости вместо типа данных, чтобы ограничить вход. Например:
Чтобы избежать преобразования строк к числовым значениям, использовать mustBeA, mustBeFloat, или mustBeNumeric.
Чтобы избежать преобразования числовых значений к строкам, использовать mustBeText, mustBeTextScalar, или mustBeNonZeroLengthText.
Чтобы избежать преобразований размера, использовать mustBeVector или mustBeScalarOrEmpty.