addParameter

Добавьте дополнительный аргумент в виде пар "имя-значение" во входную схему синтаксического анализатора

Синтаксис

addParameter(p,paramName,defaultVal)
addParameter(p,paramName,defaultVal,validationFcn)
addParameter(___,'PartialMatchPriority',matchPriorityValue)

Описание

пример

addParameter(p,paramName,defaultVal) добавляет название параметра дополнительного аргумента в виде пар "имя-значение" во входную схему синтаксического анализатора. Когда входные параметры к функции не включают эту дополнительную пару "имя-значение", входной синтаксический анализатор присваивает paramName значение defaultVal.

В отличие от позиционных входных параметров, добавленных с addRequired и функциями addOptional, каждый параметр, добавленный с addParameter, соответствует двум входным параметрам: один для имени и один для значения.

пример

addParameter(p,paramName,defaultVal,validationFcn) задает функцию валидации для входного параметра.

addParameter(___,'PartialMatchPriority',matchPriorityValue) задает приоритет для частичного соответствия конфликтных названий параметра. Входная схема синтаксического анализатора выбирает более низкие приоритетные значения по более высоким единицам. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте объект inputParser и добавьте пару "имя-значение" во входную схему.

p = inputParser;
paramName = 'myParam';
defaultVal = 0;
addParameter(p,paramName,defaultVal)

Передайте и название параметра и значение к методу parse, и отобразите результаты.

parse(p,'myParam',100);
p.Results
ans = struct with fields:
    myParam: 100

Подтвердите это, значение, соответствующее myParam, со значением по умолчанию 1, является числовым скаляром, больше, чем нуль.

Создайте входную схему синтаксического анализатора. Для функции валидации @(x) создает указатель на анонимную функцию, которая принимает входной параметр того.

p = inputParser;
paramName = 'myParam';
defaultVal = 1;
errorMsg = 'Value must be positive, scalar, and numeric.'; 
validationFcn = @(x) assert(isnumeric(x) && isscalar(x) ...
    && (x > 0),errorMsg);
addParameter(p,paramName,defaultVal,validationFcn)

Проанализируйте недопустимый входной параметр, такой как -1.

parse(p,'myparam',-1)
The value of 'myparam' is invalid. Value must be positive, scalar, and numeric.

Задайте функцию валидации использование validateattributes. Подтвердите это, аргумент является непустым вектором символа.

validationFcn = @(x) validateattributes(x,{'char'},{'nonempty'});

Создайте входную схему синтаксического анализатора, которая включает дополнительный аргумент в виде пар "имя-значение" с названием параметра myName и значение по умолчанию 'John Doe'. Подтвердите входной параметр с validationFcn.

p = inputParser;
paramName = 'myName';
defaultVal = 'John Doe';
addParameter(p,paramName,defaultVal,validationFcn)

Задайте myName как номер. Сбои синтаксического анализа.

parse(p,'myName',1138)
The value of 'myName' is invalid. Expected input to be one of these types:

char

Instead its type was double.

Проанализируйте вектор символа. Передачи синтаксического анализа.

parse(p,'myName','George')

Входные параметры

свернуть все

Введите схему синтаксического анализатора, заданную как объект inputParser.

Имя входного параметра, заданного как вектор символа или скаляр строки.

Пример: "firstName"

Пример: 'адрес'

Типы данных: char | string

Значение по умолчанию для входного параметра, заданного как любой тип данных. Если argName не является входным параметром к функции, когда функция parse анализирует входные параметры, то это присваивает argName значение defaultVal.

Функция, чтобы подтвердить аргумент, заданный как указатель на функцию.

Указатель на функцию должен быть сопоставлен с функцией, которая возвращает true или false, или проходит тест или выдает ошибку. Оба типа функций должны принять единственный входной параметр.

Пример: (s) isstring (s)

Пример: (x) isnumeric (x) &&isscalar (x)

Пример: (n) validateattributes (n, {'числовой'}, {'неотрицательный'})

Типы данных: function_handle

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

Советы

  • Пары "имя-значение" параметра являются дополнительными входными параметрами. При вызывании функции пары "имя-значение" могут появиться в любом порядке после позиционных параметров. Они принимают общую форму Name1,Value1,...,NameN,ValueN.

Введенный в R2013b

Была ли эта тема полезной?