基于与优秀的“parse_pv_pairs”相同的思想,并类似于在R2007a中添加到MATLAB中的“inputParser”对象,该函数以任何顺序处理属性的名称和值,并将值赋给包含默认值的结构。
例如,在你的函数中,它有选项"StartTime"和
"StopOnError",创建一个默认值结构并将输入传递给parseargs:
|函数myfunction(变长度输入宗量)
| X.StartTime = 0;
| X.StopOnError = true;
|X = Parseargs(x,varargin {:})
如果用户指定输入:
| myfunction (StopOnError,假的,“开始时间”,5)
结构将相应地进行修改。
这个函数的目的是尽可能地减轻处理输入的繁琐和容易出错的任务,特别是考虑到应用程序开发(而不是快速脚本),在应用程序开发中健壮性是非常重要的。
为此,该函数强制执行一些规则,部分是为了减少调用者出错的机会,部分是为了避免用户编写额外的代码来强制执行这些规则:
1)属性名必须完整指定,并且区分大小写
2)不能更改属性的数据类型(除非属性最初是空的)
3)标量值必须保持标量
4)如果原始值是单元格数组,则必须包含字符串。新值必须是这些字符串之一,如果没有指定新值,则选择第一个字符串作为默认值。
引用作为
马尔科姆·伍德(2021)。ParseAlgs:简化具有多个选项的函数的输入处理(//www.tianjin-qmedu.com/matlabcentral/fileexchange/10670-parseargs-simplifies-input-processing-for-functions-with-multiple-options), MATLAB中央文件交换。检索.