exponenta event banner

addRequired

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

Описание

пример

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'

Пример: 'address'

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

Функция для проверки аргумента, указанная как дескриптор функции.

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

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

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

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

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

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