MATLAB社区

MATLAB、社区和更多

解析输入

你可曾想过如何用MATLAB函数变量函数参数的意义?众多的MATLAB函数可以接受多个可选参数,或者参数指定为参数值对。一对参数值通常是提供一个字符串参数名称,如“位置”或“颜色”紧随其后,参数的值如(0 0 1 1)或“上”或一些这样的。你可能看过这个范式的图形功能。

的帮助下inputParser类,很容易将参数值对添加到自己的功能。这门课有两大用途:(1)输入和验证函数(2)排序的输入到一个易于使用的结构。

InputParser用于三个简单的步骤:

  1. 创建一个InputParser实例
  2. 指定的所有输入。支持三种类型的输入:金宝app
    • 需要输入。这些调用你的函数时必须提供,否则出现错误。
    • 可选的输入。这些可以如果需要离开。
    • 参数值对。这些需要一个参数名称和值。
  3. 解析输入和读取结果。

创建一个InputParser
这一步很简单。只是创建一个新的实例。

p = inputParser
p =输入解析器对象:CaseSensitive:假StructExpand:真正的KeepUnmatched:假FunctionName:“

指定所有的输入
一旦你有了一个输入解析器对象,您需要指定每个输入您想要解析。在遵循的例子中,我添加一个必需的,一个可选的,和一个参数值参数。为每个输入你要指定一个验证功能。在这些例子中,我提供了一个在线匿名函数或函数处理。一个方便的批准所有功能,如果你不在乎验证,是“@ (x)真的”。

%添加需要需要参数名称和一个验证器匿名函数p.addRequired (“mainVector”@ (x)长度(x) > 1);%添加可选需要名称,默认值,验证器p.addOptional (“ntimes”1、@isscalar);%添加paramValue需要参数名称,默认值,验证器p.addParamValue (“标题”,“默认标题”,@isstr);

解析器的输入上运行
下一步是使用inputParser对象与一个函数的输入。在这个例子的例子中,我使用它来说明对象解析输入的不同组合。

disp (“解析所有选项”);p。解析((1 2 3 4)2“标题”,“mytitle”);输入= p.Results%解析不指定一个标题disp (“没有specifing标题参数值对解析”);p。解析((1 2 3 4),3);输入= p.Results%解析与标题,没有ntimesdisp (“没有可选的ntimes解析”);p。解析([5 6 7 8],“标题”,“mytitle”);输入= p.Results
解析所有选项输入= mainVector: (1 2 3 4) ntimes: 2的标题:“mytitle”解析没有specifing标题参数值对输入= mainVector: (1 2 3 4) ntimes: 3标题:“默认标题”解析没有可选的ntimes输入= mainVector: [5 6 7 8] ntimes: 1标题:“mytitle”

可以看到,结果是一个结构体划分为各个字段的输入。如果没有指定一个可选的输入,默认值是放置在结构体。

使用一个函数
当然,这个很容易输入验证的目的和组织内的一个函数。这是一个样本函数,验证失败的例子:

函数p = inputParser myfun (input1变长度输入宗量);p.addRequired (“mainVector”@ (x)长度(x) > 1);p.addOptional (“ntimes”1、@isscalar);p.addParamValue (“标题”,“默认标题”,@isstr);p.parse (input1变长度输入宗量{:})

这里我们使用无效的参数调用函数:

myfun ((1 2 3) (1 2))
错误使用myfun(第7行)论点ntimes isscalar验证失败。

我们的验证服务它的目的!

让我们知道如果你使用inputParser还是另一种方法来检查输入的函数。

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。