匿名函数是否支持可选参数?



有没有办法在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。

当然,该解决方案仅在所有传递的参数均为某种数字类型时才有效。

希望对您有所帮助!

相关内容

  • 没有找到相关文章

最新更新