Объявите валидацию аргумента функции
argumentsargName1 (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 матрица. Смотрите Совместимые Размеры Массивов для Основных Операций для получения дополнительной информации.
— Тип данных в виде имени класса, такого как dataType
double
. Вход должен быть заданным типом или типом, который может быть преобразован в тот тип. Например, функция, которая задает double
принимает значения типа single
и преобразует их в double
.
— Список, разделенный запятыми функций валидации, такой как {validators}
mustBeNumeric
и mustBeScalar
, заключенный в фигурные скобки. Ошибка функций валидации, когда входные параметры не совпадают со своими условиями. В отличие от
, функции валидации не изменяют входные параметры. Для списка функций валидации смотрите Функции Валидации Аргумента.dataType
— Значения по умолчанию должны соответствовать заданному размеру, ввести, и правила валидации. Значением по умолчанию может также быть выражение. Определение значения по умолчанию приводит дополнительный аргумент. Дополнительные аргументы должны быть расположены после обязательных аргументов в функциональной подписи и в defaultValue
arguments
блок.
Для аргументов значения имени,
использует форму arg
, где nv.name
имя структуры в функциональной подписи и nv
имя аргумента в блоке аргументов. Например, задайте функцию, которая принимает аргументы значения имени с помощью структуры под названием name
options
.
y = myFunction(x,options)
В блоке аргументов задайте имена для аргументов значения имени как поля:
arguments x options.Name1 options.Name2 end
Для получения дополнительной информации об использовании arguments
блоки в целом, смотрите аргументы Block Syntax.
arguments (Repeating) ... end
объявляет повторяющиеся аргументы.
Например, если вы создаете функцию с именем myplot
с повторяющимися аргументами X
Y
, и style
, функция принимает несколько наборов этих трех аргументов, таких как myplot(x1,y1,style1,x2,y2,style2)
. MATLAB® создает массив ячеек, который содержит все значения, переданные в для того аргумента.
Функции могут включать только один повторяющийся блок аргументов. Если функция включает и повторение и аргументы значения имени, объявите аргументы значения имени в их собственном, отдельном блоке аргументов после повторяющегося блока аргументов.
Для получения дополнительной информации о повторяющихся аргументах смотрите Повторяющиеся Аргументы.
Блоки аргумента не поддерживаются во вложенных функциях, абстрактных методах или методах деструктора класса Handle.
Используя тип данных ограничения могут привести к неявным преобразованиям входных параметров. Например:
function y = myFunction(inputArg1) arguments inputArg1 (1,1) double end ...
"123"
как входной параметр, MATLAB преобразует строку в числовое значение 123
из типа double
.Функции валидации не изменяют входные значения ни в каком случае, так чтобы избежать преобразования типа данных, используют одну или несколько функций блока проверки допустимости вместо типа данных, чтобы ограничить вход. Например:
Чтобы избежать преобразования строк к числовым значениям, использовать mustBeA
, mustBeFloat
, или mustBeNumeric
.
Чтобы избежать преобразования числовых значений к строкам, использовать mustBeText
, mustBeTextScalar
, или mustBeNonZeroLengthText
.
Чтобы избежать преобразований размера, использовать mustBeVector
или mustBeScalarOrEmpty
.