addParameter

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

Описание

пример

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"

Пример: 'address'

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

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

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

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

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

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

Пример: @(n)validateattributes(n,{'numeric'},{'nonnegative'})

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

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

Советы

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

Введенный в R2013b