罗兰的MATLAB艺术

将想法转化为MATLAB

可选参数使用Empty作为占位符

我最近发表了一篇关于可选的输入参数以及如何覆盖默认值。Gautam提到希望允许空输入作为默认值。

内容

使用空数组的函数默认值

经过更多的思考,我能够调整我展示的最后一个程序,以采用默认值合并空值。这允许用户稍后重写参数列表中的默认值,而不需要重置之前的所有值。让我们看看这是如何工作的。

类型somefun2AltEmptyDefs
函数y = somefun2AltEmptyDefs(a,b,varargin) %某个函数需要2个输入,并有一些可选输入。%最多只需要3个可选输入numvarargs = length(varargin);如果numvarargs > 3错误('myfuns:somefun2Alt:TooManyInputs',…'最多需要3个可选输入');optargs = {eps 17 @magic};newVals = cellfun(@(x) ~isempty(x), varargin);现在将这些默认值放入valuesToUse单元格数组中,并覆盖在varargin中指定的值。optarg (newVals) =变长度输入宗量(newVals);%或…% [optargs{1:numvarargs}] = varargin{:}; % Place optional args in memorable variable names [tol, mynum, func] = optargs{:};

比较函数

我可以使用Compare Against工具(从“工具”菜单中)来比较我的新功能和以前的功能。这是一个截图。你可以点击它来查看一个清晰的版本。

差异

在新文件中有2个额外的行和一个更改的行。设置了默认单元格数组之后,我现在检查变长度输入宗量单元格数组用于空参数。有一些我想保留默认值。因此,我为它们找到正确的索引,并只覆盖或添加非空值from变长度输入宗量

对违约还有什么看法?

如果你对默认值有更多的想法,请发布它们在这里




与MATLAB®7.8发布

|

评论

请点击留言在这里登录到您的MathWorks帐户或创建一个新帐户。