我有一组匿名函数存储在一个单元数组中,格式如下:
F = {@(x) x + 1, @(x) x * x}
我想创建一个新的匿名函数,以给定输入x为参数将它们全部加起来并计算平均值。函数F可以具有任意数量的函数句柄,并在运行时生成。如果已知F,则简单地是f = @(x) (F{1}(x) + F{2}(x)) / length(F)。但我不知道如何将F中的所有元素附加到这个新的匿名函数中(可能需要循环?)我该怎么做?
我有一组匿名函数存储在一个单元数组中,格式如下:
F = {@(x) x + 1, @(x) x * x}
cellfun
函数,定义一个可以用一行代码评估F
中每个函数f
的函数。任意F
和x
的匿名函数句柄如下:F = {@(x) x + 1, @(x) x * x};
%// Build anonymous function that evaluates each function, sums,
%// divides by length of F
new_F = @(x,F)sum(cellfun(@(f)f(x), F)) / length(F);
x = 2; %// data to apply fcns on
result = new_F(x, F)
cellfun
。 - Adriaan