参考:MATLAB官方帮助文档
inputParser
- 函数的输入解析器
说明
- 使用
inputParser
对象,用户可以通过创建输入解析器模式来管理函数的输入。- 要检查输入项,您可以为所需参数、可选参数和名称-值对组参数定义验证函数。
- 还可以通过设置属性来调整解析行为,例如如何处理大小写、结构体数组输入以及不在输入解析器模式中的输入。
- 定义输入解析器模式后,调用
parse
函数。 - 有关输入的信息存储在
inputParser
中。 | 输入名称和值 | 存储位置 | | :—-: | :—-: | | 有匹配的输入解析器模式 |Results
属性 | | 没有传递给函数,因此赋予默认值 |UsingDefaults
属性 | | 无匹配的输入解析器模式 |Unmatched
属性 |
创建对象
语法
属性
CaseSensitive
- 大小写是否匹配的指示符
false
(默认) |true
- 表明检查参数名称时是否匹配大小写的指示符,指定为
false
或true
(或者指定为 0 或 1)。
- 表明检查参数名称时是否匹配大小写的指示符,指定为
- 默认情况下,参数名称的匹配不区分大小写。
- 例如,
'a'
与'A'
匹配。要进行区分大小写的匹配,请将CaseSensitive
设置为true
(或 1)。
- 例如,
-
FunctionName
- 错误消息中的函数名称 空字符向量
''
(默认) | 字符向量 | 字符串标量- 在错误消息中显示的函数的名称,指定为字符向量或字符串标量。
- 默认情况下,
FunctionName
是一个空字符向量 (''
)。 - 通常将
FunctionName
设置为要验证的函数的名称。这样,如果parse
函数遇到无效的输入参数,就会使用该函数名称报告错误。
此属性值存储为字符向量。
false
(默认) |true
- 匹配指示符,它决定当输入解析器模式中找不到某个输入时是否引发错误,指定为
false
或true
(或指定为 0 或 1)。 - 默认情况下,如果输入参数名称与输入解析器模式中定义的参数名称不匹配,
parse
函数将引发错误。 - 要抑制错误并存储输入参数名称和值,请将
KeepUnmatched
设置为true
(或 1)。inputParser
将不匹配的输入参数名称和值存储在Unmatched
属性中。
- 匹配指示符,它决定当输入解析器模式中找不到某个输入时是否引发错误,指定为
-
PartialMatching
- 部分匹配指示符 true
(默认) |false
- 部分匹配指示符,它决定是否接受部分匹配的输入名称作为有效输入,指定为
true
或false
(或指定为 1 或 0)。 - 默认情况下,如果输入参数名称是输入解析器模式中定义的参数名称的前导子字符串,则视为是有效输入,而且输入值与该参数匹配。
- 如果输入参数有多个可能的匹配项,MATLAB 将引发错误。要使输入参数名称与输入解析器模式中的名称按照
CaseSensitive
属性的设置精确匹配,请将PartialMatching
设置为false
(或 0)。
- 部分匹配指示符,它决定是否接受部分匹配的输入名称作为有效输入,指定为
- 只有使用
addParameter
函数添加到输入解析器模式中的参数支持部分匹配。 - 如果
StructExpand
属性的值为true
(或 1),则inputParser
不支持与输入参数名称对应的结构体字段名称的部分匹配。 - 如果
PartialMatching
和KeepUnmatched
都为true
(或 1),则 MATLAB 不会引发错误。在这种情况下,它会将具有多义性的参数名称存储在Unmatched
属性中。 -
StructExpand
- 结构体指示符 true
(默认) |false
- 结构体指示符,它决定是将结构体解释为单个输入还是一组参数名称-值对组,指定为
true
或false
(或指定为 1 或 0)。 - 默认情况下,
inputParser
将结构体展开为一个个单独的输入,其中每个字段名称对应一个输入参数名称。 - 要将结构体视为单个输入参数,请将
StructExpand
指定为false
(或 0)。
- 结构体指示符,它决定是将结构体解释为单个输入还是一组参数名称-值对组,指定为
-
Parameters
- 参数名称 字符向量元胞数组
- 此属性为只读
- 输入解析器模式中定义的参数名称,以字符向量元胞数组的形式存储。
- 每个向输入解析器方案中添加输入参数的函数都会更新
Parameters
属性。- 这些函数包括
addRequired
、addOptional
和addParameter
。
- 这些函数包括
-
Results
- 结果 结构体
- 此属性为只读
- 结果,指定为有效输入参数的名称和对应的值,以结构体的形式存储。
- 有效输入参数是指名称与输入解析器模式中定义的参数匹配的输入参数。
Results
结构体的每个字段对应于输入解析器模式中一个参数的名称。parse
函数会填充Results
属性。
Unmatched
- 不匹配输入
- 结构体
- 此属性为只读
- 与输入解析器模式不匹配的输入的名称和值,以结构体的形式存储。
- 如果
KeepUnmatched
属性设置为默认值false
(或 0),或者所有输入都与输入解析器模式匹配,则Unmatched
是一个不包含任何字段的 1×1 结构体。 - 否则,
Unmatched
结构体的每个字段对应于一个与输入解析器模式中定义的参数不匹配的输入参数的名称。
parse
函数会填充Unmatched
属性。-
UsingDefaults
- 未显式传递给函数的输入 字符向量元胞数组
- 此属性为只读
- 未显式传递给函数的输入,以字符向量元胞数组的形式存储。
- 这些输入参数将被赋予
Results
属性中的默认值
parse
函数会填充UsingDefaults
属性。- 数据类型:
cell
对象函数
addOptional |
将可选的位置参数添加到输入解析器模式中 |
---|---|
addParameter |
在输入解析器模式中添加可选的名称-值对组参数 |
addRequired |
将必需的位置参数添加到输入解析器模式中 |
parse |
解析函数输入 |
addParamValue |
(不推荐)在输入解析器模式中添加可选的名称-值对组参数 |
- 您可以按任何顺序调用
addRequired
、addOptional
和addParameter
函数来定义输入解析器模式。 - 但是,当您调用使用输入解析器的函数时,将按以下顺序传递参数:
- 必需参数
- 任何可选的位置参数
- 任何名称-值对组