参考:MATLAB官方帮助文档

inputParser

  • 函数的输入解析器

说明

  • 使用 inputParser 对象,用户可以通过创建输入解析器模式来管理函数的输入
    • 要检查输入项,您可以为所需参数可选参数名称-值对组参数定义验证函数。
    • 还可以通过设置属性来调整解析行为,例如如何处理大小写结构体数组输入以及不在输入解析器模式中的输入
  • 定义输入解析器模式后,调用 parse 函数。
  • 有关输入的信息存储在 inputParser 中。 | 输入名称和值 | 存储位置 | | :—-: | :—-: | | 有匹配的输入解析器模式 | Results 属性 | | 没有传递给函数,因此赋予默认值 | UsingDefaults 属性 | | 无匹配的输入解析器模式 | Unmatched 属性 |

创建对象

语法

  • p = inputParser

    说明

  • p = inputParser 创建具有默认属性值的输入解析器对象。


属性

CaseSensitive - 大小写是否匹配的指示符

  • false (默认) | true
    • 表明检查参数名称时是否匹配大小写的指示符,指定为 falsetrue(或者指定为 0 或 1)。
  • 默认情况下,参数名称的匹配不区分大小写。
    • 例如,'a''A' 匹配。要进行区分大小写的匹配,请将 CaseSensitive 设置为 true(或 1)。
  • 此属性值存储为逻辑值

    FunctionName - 错误消息中的函数名称

  • 空字符向量 ''(默认) | 字符向量 | 字符串标量

    • 在错误消息中显示的函数的名称,指定为字符向量或字符串标量。
    • 默认情况下,FunctionName 是一个空字符向量 ('')。
    • 通常将 FunctionName设置为要验证的函数的名称。这样,如果 parse 函数遇到无效的输入参数,就会使用该函数名称报告错误。
  • 此属性值存储为字符向量。

    • 数据类型: char | string

      KeepUnmatched - 匹配指示符

  • false (默认) | true

    • 匹配指示符,它决定当输入解析器模式中找不到某个输入时是否引发错误,指定为 falsetrue(或指定为 0 或 1)。
    • 默认情况下,如果输入参数名称与输入解析器模式中定义的参数名称不匹配,parse 函数将引发错误。
    • 要抑制错误并存储输入参数名称和值,请将 KeepUnmatched设置为 true(或 1)。inputParser 将不匹配的输入参数名称和值存储在 Unmatched 属性中。
  • 此属性值存储为逻辑值。

    PartialMatching - 部分匹配指示符

  • true (默认) | false

    • 部分匹配指示符,它决定是否接受部分匹配的输入名称作为有效输入,指定为 truefalse(或指定为 1 或 0)。
    • 默认情况下,如果输入参数名称是输入解析器模式中定义的参数名称的前导子字符串,则视为是有效输入,而且输入值与该参数匹配。
    • 如果输入参数有多个可能的匹配项,MATLAB 将引发错误。要使输入参数名称与输入解析器模式中的名称按照 CaseSensitive 属性的设置精确匹配,请将PartialMatching 设置为 false(或 0)。
  • 只有使用 addParameter 函数添加到输入解析器模式中的参数支持部分匹配。
  • 如果 StructExpand 属性的值为 true(或 1),则 inputParser 不支持与输入参数名称对应的结构体字段名称的部分匹配。
  • 如果 PartialMatchingKeepUnmatched 都为 true(或 1),则 MATLAB 不会引发错误。在这种情况下,它会将具有多义性的参数名称存储在 Unmatched 属性中。
  • 此属性值存储为逻辑值。

    StructExpand - 结构体指示符

  • true (默认) | false

    • 结构体指示符,它决定是将结构体解释为单个输入还是一组参数名称-值对组,指定为 truefalse(或指定为 1 或 0)。
    • 默认情况下,inputParser 将结构体展开为一个个单独的输入,其中每个字段名称对应一个输入参数名称。
    • 要将结构体视为单个输入参数,请将StructExpand 指定为 false(或 0)。
  • 此属性值存储为逻辑值。

    Parameters - 参数名称

  • 字符向量元胞数组

    • 此属性为只读
    • 输入解析器模式中定义的参数名称,以字符向量元胞数组的形式存储。
  • 每个向输入解析器方案中添加输入参数的函数都会更新 Parameters 属性。
    • 这些函数包括 addRequiredaddOptionaladdParameter
  • 数据类型: cell

    Results - 结果

  • 结构体

    • 此属性为只读
    • 结果,指定为有效输入参数的名称和对应的值,以结构体的形式存储。
      • 有效输入参数是指名称与输入解析器模式中定义的参数匹配的输入参数。
  • Results 结构体的每个字段对应于输入解析器模式中一个参数的名称。
    • parse 函数会填充 Results 属性。

数据类型: struct

Unmatched - 不匹配输入

  • 结构体
    • 此属性为只读
    • 与输入解析器模式不匹配的输入的名称和值,以结构体的形式存储。
    • 如果 KeepUnmatched 属性设置为默认值 false(或 0),或者所有输入都与输入解析器模式匹配,则 Unmatched 是一个不包含任何字段的 1×1 结构体。
    • 否则,Unmatched 结构体的每个字段对应于一个与输入解析器模式中定义的参数不匹配的输入参数的名称。
  • parse 函数会填充 Unmatched 属性。
  • 数据类型: struct

    UsingDefaults - 未显式传递给函数的输入

  • 字符向量元胞数组

    • 此属性为只读
    • 未显式传递给函数的输入,以字符向量元胞数组的形式存储。
    • 这些输入参数将被赋予 Results 属性中的默认值
  • parse 函数会填充UsingDefaults 属性。
  • 数据类型: cell

对象函数

addOptional 将可选的位置参数添加到输入解析器模式中
addParameter 在输入解析器模式中添加可选的名称-值对组参数
addRequired 将必需的位置参数添加到输入解析器模式中
parse 解析函数输入
addParamValue (不推荐)在输入解析器模式中添加可选的名称-值对组参数
  • 您可以按任何顺序调用 addRequiredaddOptionaladdParameter 函数来定义输入解析器模式。
  • 但是,当您调用使用输入解析器的函数时,将按以下顺序传递参数:
    • 必需参数
    • 任何可选的位置参数
    • 任何名称-值对组