addRequired

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

Синтаксис

addRequired(p,argName)
addRequired(p,argName,validationFcn)

Описание

пример

addRequired(p,argName) добавляет необходимый, позиционный входной параметр argName во входную схему p синтаксического анализатора.

пример

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

Примеры

свернуть все

Создайте объект inputParser и добавьте необходимый входной параметр под названием myinput к входной схеме.

p = inputParser;
argName = 'myinput';
addRequired(p,argName)

Вызовите функцию parse с входным значением 7 и отобразите результаты.

parse(p,7)
p.Results
ans = struct with fields:
    myinput: 7

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

p = inputParser;
argName = 'num';
validationFcn = @(x) (x > 0) && isnumeric(x) && isscalar(x);
addRequired(p,argName,validationFcn)

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

parse(p,-1)
The value of 'num' is invalid. It must satisfy the function: @(x)(x>0)&&isnumeric(x)&&isscalar(x).

Создайте объект inputParser и задайте функцию валидации использование validateattributes. Тесты функции валидации, что необходимый входной параметр является числовым, положительным, и даже.

p = inputParser;
argName = 'evenPosNum';
validationFcn = @(x) validateattributes(x,{'numeric'},...
    {'even','positive'}); 
addRequired(p,argName,validationFcn)

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

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

double, single, uint8, uint16, uint32, uint64, int8, int16, int32, int64

Instead its type was char.

Проанализируйте нечетное число. Проанализируйте сбои, потому что входной параметр недопустим.

 parse(p,13)
The value of 'evenPosNum' is invalid. Expected input to be even.

Проанализируйте даже, положительное число. Проанализируйте передачи.

parse(p,42)

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

свернуть все

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

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

Пример: 'firstName'

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

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

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

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

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

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

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

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

Представленный в R2007a

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