有没有办法在MATLAB中实现的匿名函数中使用可选参数?
请参阅以下示例:
foo = @(x,y)(x+y+12)
y
可以是上述匿名函数中的可选参数,例如
foo = @(x,y?)(x+y+12)
并且仅在提供时使用y
?
MATLAB 中有一个概念叫做"可变长度输入参数列表",见varargin
。这通常可以在匿名函数中使用,特别是在您的示例中:
foo = @(varargin) sum(cell2mat(varargin)) + 12;
foo(10) % 10 + 12
foo(10, 20) % 10 + 20 + 12
foo(10, 20, 30) % 10 + 20 + 30 + 12
ans = 22
ans = 42
ans = 72
varargin
是一个单元格数组,因此我们需要将其转换为常规(数字(数组。然后我们只需要将这些值相加并加 12。
当然,该解决方案仅在所有传递的参数均为某种数字类型时才有效。
希望对您有所帮助!