Main Content

addParameter

在输入解析器模式中添加可选的名称-值对组参数

说明

示例

addParameter(p,paramName,defaultVal) 将一个可选的名称-值对组参数的参数名称添加到输入解析器模式中。如果函数的输入参数不包含这个可选的名称-值对组,输入解析器会为 paramName 赋予值 defaultVal

与使用 addRequiredaddOptional 函数添加的位置输入参数不同,使用 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

用于验证参数的函数,指定为函数句柄。

函数句柄必须与函数关联,该函数要么返回 truefalse,要么通过测试或引发错误。这两个类型的函数都必须接受单个输入参数。

示例: @(s)isstring(s)

示例: @(x)isnumeric(x)&&isscalar(x)

示例: @(n)validateattributes(n,{'numeric'},{'nonnegative'})

数据类型: function_handle

有冲突的参数名称进行部分匹配时的优先级,指定为正整数。输入解析器模式优先选择具有较低优先值的参数名称。如果存在多个部分匹配的参数名称且优先级相同,parse 会引发错误。如果存在多个部分匹配的参数名称但优先级值不同,parse 会发出警告,指出匹配的名称。

提示

  • 参数名称-值对组是可选输入。调用函数时,名称-值对组可以按任何顺序出现在位置参数之后。一般形式为 Name1,Value1,...,NameN,ValueN

版本历史记录

在 R2013b 中推出