nargin matlab что это
электронные книги
Иллюстрированный самоучитель по MatLab
Системные переменные и константы
Как отмечалось ранее, в состав объектов MATLAB входит ряд системных переменных и констант, значения которых устанавливаются системой при ее загрузке или автоматически формируются в процессе вычислений. Описание таких объектов приводится ниже.
ans — результат выполнения последней операции. Переменная ans создается автоматически, когда не определены выходные аргументы какого-либо оператора. Пример:
computer — возвращает строку с информацией о типе компьютера, на котором установлена система MATLAB;
[str.maxsize] = computer — возвращает строку str с информацией о компьютере и целое число maxsize, содержащее максимально допустимое число элементов матрицы для данной версии MATLAB. Пример:
eps — возвращает интервал между числом 1.0 и следующим ближайшим числом с плавающей запятой, которое воспринимается как отличное от 1.0. Значение eps определяет заданный по умолчанию порог для функций pinv и rank, а также для некоторых других функций. На машинах с арифметикой с плавающей запятой eps = 2 ^ (-52), что приблизительно составляет 2.22е-1б. Пример:
i или j— мнимая единица (равная sqrt(-1)), которая используется для задания мнимой части комплексных чисел. Символ 1 при задании комплексной константы можно использовать без знака умножения. В качестве мнимой единицы можно также использовать символ j. Пример:
Inf — возвращает представление положительной бесконечности для машинной арифметики. Бесконечность следует из операций, подобных делению на нуль, и переполнения, которое ведет к результатам, слишком большим, чтобы их можно было представить в виде числа с плавающей запятой. Пример:
Warning: Divide by zero.
Переменным i и j можно задать и иное значение, например, они могут выступать в ка-честве индексов в циклах for. Однако это чревато путаницей, если внутри цикла пользователь задает выражения с комплексными числами.[Используйте как индексы I и J вместо 1 и j.— Примеч. ред.]
inputname(argnum) — возвращает в тело функции название переменной рабочей области, соответствующее аргументу с номером argnum. Может использоваться только внутри тела функции. Если входной аргумент не имеет никакого символьного представления (например, если это выражение или функция, дающая на выходе выражение, например а(1), varargin<:>, eval(expr), а не переменная), функция inputname возвращает пустую строку («»);
j — мнимая единица. Символ j можно использовать в качестве мнимой единицы наряду с 1. Как мнимая единица (равная sqrt(-D) символ j используется для задания мнимой части комплексных чисел. Все сказанное о символе i относится и к j. Пример:
NaN — возвращает представление для нечисловых величин, например, в случае операций, которые имеют неопределенные численные результаты. Пример:
Warning: Divide by zero.
Функция nargchk часто используется внутри m-файлов для проверки соответствия количества входных параметров (аргументов):
msg = nargchkOow.high.number) — возвращает сообщение об ошибке, если число number меньше, чем low, или больше, чем high, в противном случае возвращается пустая строка. Пример:
msg = Not enough input arguments.
msg = nargoutchkdow,high.number) — возвращает сообщение об ошибке, если число number выходных параметров (выходных аргументов в терминологии MATLAB) меньше, чем low, или больше, чем high, в противном случае возвращается пустая строка.
Еще две функции позволяют определить число входных и выходных параметров функции:
nargin — возвращает число входных аргументов, определенных для функции. Внутри тела m-файла функции nargin и nargout указывают соответственно количество входных или выходных аргументов, заданных пользователем. Вне тела m-файла функции nargin и nargout показывают соответственно число входных или выходных аргументов для данной функции. Отрицательное число аргументов означает, что функция имеет переменное число аргументов;
nargout — возвращает число выходных параметров, определенных для функции;
nargout( ‘fun’) — возвращает число объявленных выходных параметров для функции fun.
Применение этих функций мы рассмотрим немного позже при описании структуры функций.
Продолжаем перечисление системных переменных:
pi — число р (отношение длины окружности к ее диаметру), pi возвращает число с плавающей запятой, ближайшее к значению р. Выражения 4*atan(l) и imag(log(-1)) выдают тот же результат. Пример:
real max — возвращает самое большое число в формате с плавающей запятой, соответствующее конкретному компьютеру. Большее значение соответствует системной переменной Inf. Пример:
real mi n — возвращает наименьшее нормализованное положительное число в формате с плавающей запятой, представимое на конкретном компьютере. Любое меньшее число воспринимается как ноль. Пример:
Переменные varargin и varargout позволяют использовать в функциях переменное число входных и выходных параметров:
varargout = foo(n) — возвращает список выходных параметров переменной длины функции foo;
у = function bar(varargin) — принимает переменное число аргументов в функцию bar.
Переменные varargin и varargout используются только внутри m-файлов функции для задания произвольных аргументов функции. Эти переменные должны быть последними в списке входов или выходов, а для их обозначения могут использоваться только строчные буквы. Использование этих возможностей мы рассмотрим несколько позже.
Документация
Валидация аргумента функции
Введение в валидацию аргумента
Валидация аргумента функции является способом объявить определенные ограничения на входные аргументы функции. Используя валидацию аргумента можно ограничить класс, размер и другие аспекты значений входного параметра функции без написания кода в теле функции выполнять эти тесты.
Валидация аргумента функции декларативна, который включает MATLAB ® настольные инструменты, чтобы извлечь информацию о функции контролем определенных блоков кода. Путем объявления требований для входных параметров можно устранить громоздкий код проверки аргументов и улучшить удобочитаемость, робастность и поддерживаемость кода.
Синтаксис валидации аргумента функции упрощает процесс определения дополнительного, повторение и аргументы name-value. Синтаксис также позволяет вам задать значения по умолчанию сопоставимым способом.
Где использовать валидацию аргумента
Использование валидации аргумента функции является дополнительным в функциональных определениях. Валидация аргумента является самой полезной в функциях, которые могут быть вызваны любым кодом и где валидность входных параметров должна быть определена прежде, чем выполнить функциональный код. Функции, которые спроектированы для использования другими, могут извлечь выгоду из соответствующего уровня ограничения на входные параметры аргумента и возможность возвратить определенные сообщения об ошибке на основе входных параметров к функциям.
Где валидация не нужна
В локальных и закрытых функциях, и в закрытых или защищенных методах, вызывающая сторона знает о входных требованиях, таким образом, эти типы функций могут быть вызваны допустимыми аргументами.
Где валидация не позволена
Вы не можете использовать синтаксис валидации аргумента во вложенных функциях, абстрактных методах или методах деструктора класса Handle. Для получения дополнительной информации о валидации аргумента в методах смотрите Валидацию Аргумента в Методах класса.
arguments Блокируйте синтаксис
Можно использовать несколько arguments блоки в функции, но все блоки должны произойти перед любым кодом, который не является частью arguments блок.
Подсвеченная область в следующем коде показывает синтаксис для валидации аргумента.
Объявление аргумента функции может включать любой из этих видов ограничений:
Размер — длина каждой размерности, заключенной в круглые скобки
Класс — имя одного класса MATLAB
Функции — список, разделенный запятыми функций валидации, заключенных в фигурные скобки
Можно также задать значение по умолчанию для входного параметра в функциональном объявлении валидации для того аргумента. Значение по умолчанию должно удовлетворить заявленным ограничениям для того аргумента.
Размер
Размер валидации является размерностями входного параметра, заданного с неотрицательными целыми числами или двоеточиями ( : ). Двоеточие указывает, что любая длина позволена в той размерности. Вы не можете использовать выражения для размерностей. Значение, присвоенное аргументу в вызове функции, должно быть совместимо с заданным размером, или MATLAB выдает ошибку.
Индексированные правила присвоения MATLAB применяются к техническим требованиям размера. Например, значение 1 на 1 совместимо с размером, заданным как (5,3) потому что MATLAB применяет скалярное расширение. Кроме того, преобразование столбца строки MATLAB применяется так, чтобы размер задал как (1,:) может принять размер 1 на n и n-1.
Вот некоторые примеры:
(1,1) — Вход должен быть точно 1 на 1.
(3,:) — Первая размерность должна быть 3, и второе измерение может быть любым значением.
Если вы не задаете размер, то любой размер позволен, если не ограничено функциями валидации.
Класс
Класс валидации является именем единого класса. Значение, присвоенное входному параметру функции, должно иметь заданный класс или конвертируемо к заданному классу. Используйте любой класс MATLAB или внешне заданный класс, который поддерживается MATLAB, кроме Java, COM-классов и определений классов MATLAB, которые не используют classdef ключевое слово (классы, заданные перед Версией 7.6 программного обеспечения MATLAB).
Вот некоторые примеры:
double — Введите может быть числовое значение любой точности.
cell — Введите должен быть массив ячеек.
Пользовательский класс, такой как класс перечисления, может ограничить входные параметры более определенными значениями и позволяет вам управлять тем, какие преобразования поддерживаются.
Если вы не задаете класс, то любой класс позволен, если не ограничено функциями валидации.
Функции валидации
Функцией валидации является функция MATLAB, которая выдает ошибку, если определенным требованиям не удовлетворяет значение аргумента. Функции валидации не делают возвращаемых значений и, в отличие от класса и размера, не может изменить значение аргументов, которые они подтверждают.
Во время процесса валидации MATLAB передает значение аргумента каждой функции валидации, перечисленной для того аргумента. Значение, переданное функциям валидации, является результатом любого преобразования, сделанного техническими требованиями размера и классом. MATLAB вызывает каждую функцию слева направо и выдает первую ошибку, с которой сталкиваются.
Для таблицы предопределенных функций валидации смотрите Функции Валидации Аргумента.
Значение по умолчанию
Значением по умолчанию аргумента может быть любая константа или выражение, которое удовлетворяет размеру, классу и требованиям функции валидации. Определение значения по умолчанию в объявлении аргумента приводит дополнительный аргумент. MATLAB использует значение по умолчанию, когда аргумент не включен в вызов функции. Выражения значения по умолчанию выполнены каждый раз, когда значение по умолчанию используется.
Примечание
Поскольку MATLAB подтверждает значение по умолчанию только, когда функция вызвана без значения для аргумента, недопустимое значение по умолчанию вызывает ошибку только, когда функция вызвана без того аргумента.
Дополнительные аргументы должны быть расположены после обязательных аргументов в функциональной подписи и в arguments блок. Для получения дополнительной информации о дополнительных аргументах смотрите Необходимые и Дополнительные Позиционные параметры.
Последовательность валидации
Аргументы подтверждены сверху донизу в arguments блок. MATLAB подтверждает каждую часть объявления аргумента в определенном порядке. Сначала класс подтвержден, затем размер. Результат класса и валидаций размера передается функциям валидации. Каждый шаг является дополнительным в зависимости от того, являются ли класс, размер и функции валидации в объявлении аргумента.
Для получения дополнительной информации смотрите Порядок Валидации Аргумента
Преобразование в заявленный класс и размер
И валидация класса и валидация размера могут изменить значение входного параметра из-за стандартных правил преобразования MATLAB. Поэтому подтвержденное значение в теле функции может отличаться от значения, переданного при вызывании функции. Правила преобразования выведены из правил, что MATLAB запрашивает индексируемое присвоение формы:
MATLAB может решить, что значение левой стороны имеет требования для класса и размера и, в определенных случаях, может преобразовать значение правой стороны, чтобы быть необходимого класса и размера.
Примеры валидации аргумента
Этот arguments блок задает размер и класс трех входных параметров.
В этой функции переменные должны удовлетворить эти требования валидации:
A строковый скаляр.
B 1-any вектор длины из, удваивается.
C массив ячеек 2 на 2.
Преобразование значения
Следующая функция иллюстрирует, как входные параметры могут быть преобразованы, чтобы совпадать с классами, заданными в arguments блок. SpeedEnum класс является классом перечисления, созданным, чтобы задать значения, допускал третий входной параметр.
Вот класс перечисления.
Этот вызов функции использует входные значения, которые MATLAB может преобразовать в заявленные типы. Фактические типы аргумента в функции отображены, как выведено.
Определенные ограничения Используя функции валидации
Функции валидации могут ограничить входные параметры в более особенных методах. Можно использовать предопределенные функции валидации для многих общих видов валидации, и можно задать собственную функцию валидации, чтобы удовлетворить конкретным требованиям.
Введите x должен быть действительный, числовой вектор-строка из любой длины.
Введите method должен быть вектор символов, который является одним из трех позволенных вариантов. Поскольку method задает значение по умолчанию, этот аргумент является дополнительным.
Избегайте использования валидации аргумента функции в пользовательских функциях валидации. Для получения дополнительной информации об определении функций валидации и списка предопределенных функций валидации, смотрите Функции Валидации Аргумента.
Виды аргументов
Валидация аргумента функции может объявить четыре вида аргументов. Функции могут задать любой из этих видов аргументов, но аргументы должны быть заданы в следующем порядке:
Необходимые позиционные параметры
Дополнительные позиционные параметры
Повторение позиционных параметров
Дополнительные аргументы name-value
Требуемые и дополнительные позиционные параметры
Позиционные параметры должны быть переданы функции в определенном порядке. Положение значения, переданного в списке аргументов, должно соответствовать порядку, которым аргумент объявляется в arguments блок. Все имена аргумента в arguments блок должен быть уникальным.
Позиционные параметры в arguments блок требуется при вызывании функции, если аргумент не задает значение по умолчанию. Определение значения по умолчанию в объявлении аргумента приводит позиционный аргумент, дополнительный, потому что MATLAB может использовать значение по умолчанию, когда никакое значение не передается в вызове функции.
Значением по умолчанию может быть константа или выражение, которое приводит к результату, который удовлетворяет объявлению аргумента. Выражение может относиться к аргументам, которые объявляются перед ним в arguments блокируйтесь, но не аргументы, которые объявляются после него.
MATLAB выполняет выражение значения по умолчанию только, когда аргумент не включен в вызов функции.
Все дополнительные аргументы должны быть расположены после всех обязательных аргументов в arguments блок. Например, в этом блоке аргумента, maxval и minval имейте значения по умолчанию, и являются поэтому дополнительными.
Можно вызвать эту функцию с любым из этих синтаксисов:
Проигнорированные позиционные параметры
MATLAB позволяет вам проигнорировать входные параметры путем передачи символа тильды (
) вместо аргумента. Можно задать функцию, которая игнорирует неиспользованные позиционные параметры путем добавления символа тильды (
) в блоке аргументов, соответствующем положению аргумента в функциональной подписи. Добавьте символ тильды (
) для каждого проигнорированного аргумента в функциональной подписи.
Проигнорированные аргументы не могут иметь значений по умолчанию или задать класс, размер или функции валидации.
) обработан как дополнительный входной параметр, если он не сопровождается необходимым позиционным параметром. Например, в этой функции символ тильды (
) представляет дополнительный аргумент.
Можно вызвать эту функцию без аргументов.
Или можно вызвать эту функцию с одним аргументом.
В следующей функции, символ тильды (
) представляет обязательный аргумент.
Вызовы этой функции должны включать оба аргумента.
Для получения дополнительной информации о вызывании функций с проигнорированными входными параметрами смотрите, Игнорируют Входные параметры в Функциональных Определениях.
Повторение аргументов
Повторяющиеся аргументы являются позиционными параметрами, которые могут неоднократно задаваться как входные параметры. Объявите повторяющиеся аргументы в arguments блокируйтесь, который включает Repeating атрибут.
Функции могут иметь только один Repeating arguments блокируйтесь, который может содержать один или несколько повторяющихся аргументов.
Функция, которая задает Repeating arguments блок может быть вызван нулем или большим количеством случаев всех аргументов в блоке. Если вызов функции включает повторяющиеся аргументы, то все аргументы в Repeating arguments блок должен быть включен для каждого повторения.
Повторение аргументов не может задать значения по умолчанию и поэтому не может быть дополнительным. Однако можно вызвать функцию без включения любых аргументов повторения.
Функции должны объявить повторяющиеся аргументы после позиционных параметров и перед аргументами name-value. Вы не можете задать аргументы name-value в Repeating блок. Для получения информации об аргументах name-value смотрите Аргументы name-value.
В функции каждый аргумент повторения становится массивом ячеек с числом элементов, равным количеству повторений, переданных в вызове функции. Валидация применяется к каждому элементу массива ячеек. Если функция вызвана с нулевыми случаями этого аргумента, массив ячеек имеет размер 1 на 0. Таким образом, это пусто.
Можно вызвать функцию без входных параметров или множителей трех входных параметров. MATLAB создает массив ячеек для каждого аргумента, содержащего все передачи значений для того аргумента. Этот вызов fRepeat передачи два набора трех повторяющихся аргументов.
Вызовите эту функцию с повторяющимися парами входных параметров.
Избегайте использования varargin для повторения аргументов
Если вы используете varargin чтобы поддержать унаследованный код, это должен быть единственный аргумент в Repeating arguments блок.
Например, эта функция задает два необходимых позиционных параметра и varargin в качестве повторяющегося аргумента.
Аргументы name-value
Аргументы name-value сопоставляют имя со значением, которое передается функции. Аргументы name-value:
Может быть передан функции в любом порядке
Являются всегда дополнительными
Должен быть объявлен после всех позиционных и повторяющихся аргументов
Не может появиться в arguments блокируйтесь, который использует Repeating атрибут
Должен использовать уникальные имена даже когда с помощью нескольких структур значения имени
Не может использовать имена, которые также используются для позиционных параметров
Имя структуры должно появиться в функциональной подписи.
Вызовите функцию с помощью имен полей в структуре значения имени.
Перед R2021a, именами передачи как строки или векторы символов, и разделяют имена и значения с запятыми. Оба синтаксиса допустимы в более поздних релизах.
Имя структуры, используемой в функциональной подписи, является именем структуры в функциональной рабочей области, которая содержит имена, и значения передали функции.
Значения по умолчанию для аргументов name-value
Можно задать значение по умолчанию для каждого имени. Если вы не задаете значение по умолчанию, и функция вызвана без того аргумента значения имени, то то поле не присутствует в структуре значения имени. Если никакие аргументы name-value не передаются функции, MATLAB создает структуру, но это не имеет никаких полей.
Чтобы определить, какие аргументы name-value были переданы в вызове функции, используйте isfield функция.
Например, следующая функция задает два необходимых позиционных параметра ( width и height ) и два аргументов name-value ( LineStyle и LineWidth ). В этом примере, options структура имеет два поля ( LineStyle и LineWidth ) содержа или значения по умолчанию или значения, заданные как аргументы name-value, когда функция вызвана.
Все эти синтаксисы являются допустимыми способами вызвать эту функцию.
Перед R2021a, именами передачи как строки или векторы символов, и разделяют имена и значения с запятыми. Например:
Используя повторение и аргументы name-value
Определить, включает ли вызов функции PlotType аргумент, используйте isfield функционируйте, чтобы проверять на PlotType поле в scale структура.
Вызовите эту функцию с или без аргумента значения имени.
Перед R2021a, именами передачи как строки или векторы символов, и разделяют имена и значения с запятыми. Например:
Несколько структур значения имени
Аргументы в myRectangle функция:
fillOptions.Pattern не имеет никаких ограничений на его значение.
Устойчивая обработка аргументов name-value
Лучшая практика для реализации аргументов name-value в ваших функциях путем определения их в блоке аргументов. Блок аргументов избавляет от необходимости писать ваш собственный код, чтобы проанализировать аргументы name-value, и блок также помогает реализовать устойчивый парсинг аргумента для обоих «name»,value синтаксис и name=value синтаксис введен в R2021a.
Осуществление допустимых имен
Определение аргумента значения имени в блоке аргументов гарантирует, что имя является допустимым идентификатором. В свою очередь это помогает гарантировать, что ваши аргументы работают с обоими «name»,value и name=value синтаксисы. Например, аргумент значения имени, который использует недопустимый идентификатор, может работать с разделенным от запятой синтаксисом:
Предотвращение неожиданных результатов с вводами текста
Функции, которые включают и дополнительные вводы текста и аргументы name-value, рискуют вводами текста интерпретации MATLAB как именами аргументов name-value. Эта функция включает два дополнительных ввода текста и аргумент значения имени.
Один способ избежать этого состоит в том, чтобы сделать tag обязательный аргумент путем удаления его значения по умолчанию:
Другая опция должна сделать все три входных аргументов name-value. Это помогает пользователям избежать ошибок при определении входных параметров, потому что каждое значение сопоставлено с именем и порядком, который задает пользователь, входные параметры не влияет на конечные результаты.
Аргументы name-value из свойств класса
Полезный синтаксис функций в MATLAB использует публичные свойства класса для имен аргументов name-value. Задавать аргументы name-value для всех устанавливаемых свойств, заданных классом (то есть, всех свойств с общедоступным SetAccess ), используйте этот синтаксис в arguments блок:
Если класс устанавливает ограничения для значений, которые можно присвоить свойству при помощи валидации свойства, то функция применяет валидацию к отдельным аргументам name-value. Для получения информации о валидации свойства см. Проверку значений свойств.
Например, эта функция имеет два обязательных аргумента, x и y и принимает любое имя общественной собственности и значение для matlab.graphics.chart.primitive.Bar класс.
Вызовите функцию с необходимыми входными параметрами и любыми устанавливаемыми парами «имя-значение» свойства.
Перед R2021a, именами передачи как строки или векторы символов, и разделяют имена и значения с запятыми. Например:
Замените определенные свойства
Можно заменить валидацию свойства класса путем переопределения имени свойства с аргументом значения собственного имени в блоке аргументов.
Валидация аргумента значения собственного имени заменяет валидацию, заданную классом для индивидуально заданного имени свойства.
Эта функция преобразует структуру значения имени в массив ячеек, содержащий чередованные имена и значения с помощью namedargs2cell функция.
Валидация аргумента в методах класса
Проверка входных параметров метода полезна в открытых методах, потому что вызовы метода не могут произойти в коде класса. Можно использовать валидацию аргумента функции в методах реального класса, включая конкретные методы, заданные в абстрактных классах. Однако абстрактные методы (методы, не реализованные классом), не могут задать arguments блоки. Для получения информации о методах класса см. Методы и Абстрактные классы и Члены класса.
Если classdef файл включает прототипы метода для методов, заданных в отдельных файлах, включайте arguments блоки в отдельных файлах, задающих метод. Для получения дополнительной информации об определении методов в отдельных файлах см. Методы в Отдельных Файлах.
Методы подклассов не наследовали валидацию аргумента функции. В методах подклассов, которые заменяют методы суперкласса, можно добавить ту же валидацию аргумента в метод подклассов, как используется в методе суперкласса.
Методы деструктора класса Handle не могут использовать валидацию аргумента. Метод под названием delete в подклассе указателя, который включает arguments блок не обработан как деструктор. (Другими словами, это не вызвано MATLAB, когда объект уничтожается). Для получения дополнительной информации о методах деструктора класса смотрите Деструктор Класса Handle.
Порядок валидации аргумента
Когда функция вызвана, MATLAB подтверждает входные параметры в порядке, которым они объявляются в arguments блокируйтесь, сверху донизу. Каждый аргумент полностью подтвержден, прежде чем следующий аргумент подтвержден. Поэтому любая ссылка на ранее заявленный аргумент использует значения, которые были подтверждены. Функции выдают ошибку в результате первого отказа валидации.
Подтвержденные значения могут отличаться от исходных значений, переданных как входные параметры, когда функция вызвана. Например, эта функция объявляет входные параметры как класс uint32 значения. Третье входное объявление присваивает значение по умолчанию, равное продукту первых двух входных параметров.
Поскольку дополнительный входной параметр c не задан в вызове функции, MATLAB выполняет значение по умолчанию и присваивает его c после преобразования a и b к uint32 значения. В этом случае преобразование приводит к значению 2 для обоих входных параметров. Поэтому продукт a времена b четыре.
Если вы задаете значение для третьего входа, то функция присваивает значение c и не выполняет выражение значения по умолчанию.
Предотвращение преобразований класса и размера
Во время процесса валидации MATLAB применяет класс и затем валидацию размера прежде, чем вызвать любые функции валидации. Если значение по умолчанию используется для дополнительного входа, который не использован в вызове функции, это значение присвоено аргументу прежде, чем применить любые шаги в процессе валидации.
Когда значение аргумента, которое передается функции, не совпадает с классом и размером, требуемым валидацией, MATLAB преобразует значение в заявленный класс и размер, когда преобразование возможно. Однако преобразование не может быть желаемым поведением.
Вот некоторые примеры преобразований, которые может выполнить MATLAB.
Удовлетворить числовому ограничению класса:
char значение может быть преобразовано в свой Unicode ® числовое значение.
string может быть преобразован в номер или NaN если строка не является представлением одного номера.
Удовлетворить ограничению размера:
Скалярное расширение может изменить размер от скаляра до нескалярного.
Вектор-столбец может быть преобразован в вектор-строку.
Чтобы устранить стандартные преобразования, выполняемые MATLAB от валидации входного параметра, используйте функции валидации вместо ограничений размера и класса. Вызовы функций валидации не делают возвращаемых значений и не могут изменить значение входного параметра.
Из-за стандартного преобразования типов MATLAB и скалярного расширения, можно вызвать эту функцию со следующими входными параметрами и не получить ошибку валидации.
Используя специализированную валидацию функции могут обеспечить более определенную валидацию входного параметра. Например, эта функция задает специализированные функции валидации, которые она использует вместо класса и технических требований размера для первых и вторых аргументов. Эти локальные функции позволяют вам избежать преобразований входного значения.
mustBeOfClass функция осуществляет строгий класс, соответствующий путем требования соответствия с именем класса. Более общий подход мог использовать isa функционируйте, чтобы также совпадать с подклассами заданного класса.
mustBeEqualSize и mustBeDims функции осуществляют строгие объявления для входных параметров.
В этом вызове количество размерностей первого входа является неправильным, таким образом, функция валидации возвращает пользовательское сообщение об ошибке.
mustBeEqualSize функция блока проверки допустимости ограничивает второй вход определенной размерностью, которая обеспечивается в сообщении об ошибке.
nargin в валидации аргумента
nargin функция возвращает количество входных аргументов функции, данных в вызове функции выполняющегося в данного момента. При использовании валидации аргумента функции, значение, возвращенное nargin в функции количество позиционных параметров, обеспеченных, когда функция вызвана.
Значение это nargin возвращается не включает дополнительные аргументы, которые не включены в вызов функции. Кроме того, nargin не считает аргументов name-value.
Использование nargin определить, передаются ли дополнительные позиционные параметры функции, когда названо. Например, эта функция объявляет три позиционных параметра и аргумент значения имени. Вот то, как функция определяет, какие аргументы передаются, когда она называется.
nargin определяет если дополнительный позиционный параметр c передается функции с a switch блок.
isfield определяет если аргумент значения имени для Format передается функции.