如何将默认值分配给函数输入
61次浏览(过去30天)
显示旧的注释
我有一个函数,它有一些必要的输入,
heatContent =函数(swRadiation lwRadiation)
如果用户为任何输入传递[],我希望替换默认值(swRadiation=100或lwRadiation=50)。同样,如果用户只传入一个输入,我将用lwradiation=50代替第二个输入。我相信我能用得上
inputparser
,但是下面给出了一个错误(未定义的函数或变量'lwRadiation')。我可以写一长串if/elseif语句,但我怀疑有一种更紧凑的方法。
P = inputparser;
addOptional (p,“swRadation”, 50);
addOptional (p,“lwRadiation”, 100);
0评论
接受的答案
1月
2016年11月30日
编辑:1月
2016年11月30日
当您只提供一个输入时,代码应该如何决定给出哪个输入?
inputParser是一个功能强大的工具。但这里的硬编码并不复杂:
函数heatContent =函数(swRadiation lwRadiation)
开关输入参数个数
情况下0
swRadiation = [];
lwRadiation = [];
情况下1
lwRadiation = [];
情况下2
否则
错误(“接受两个输入。”)
结束
如果isempty (swRadiation)
swRadiation = 50;
结束
如果isempty (lwRadiation)
lwRadiation = 100;
结束
...
inputParser期望名称-值对来标识输入。这允许您更改输入的顺序,并且您可以只提供第二个输入而没有歧义。