如何将默认值分配给函数输入

61次浏览(过去30天)
K E
K E 2016年11月30日
评论道: K E 2016年12月2日
我有一个函数,它有一些必要的输入,
heatContent =函数(swRadiation lwRadiation)
如果用户为任何输入传递[],我希望替换默认值(swRadiation=100或lwRadiation=50)。同样,如果用户只传入一个输入,我将用lwradiation=50代替第二个输入。我相信我能用得上 inputparser ,但是下面给出了一个错误(未定义的函数或变量'lwRadiation')。我可以写一长串if/elseif语句,但我怀疑有一种更紧凑的方法。
P = inputparser;
addOptional (p,“swRadation”, 50);
addOptional (p,“lwRadiation”, 100);

接受的答案

1月
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期望名称-值对来标识输入。这允许您更改输入的顺序,并且您可以只提供第二个输入而没有歧义。
1评论
K E
K E 2016年12月2日
知道通过inputparser实际上没有快捷方式是件好事,而if语句是一种很好的方法。

登录评论。

更多答案(0)

类别

了解更多参数定义帮助中心而且文件交换

s manbetx 845

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!