函数句柄的单元格的累积和

时间:2014-03-27 21:53:43

标签: matlab function-handle

我有一个函数句柄单元格:

f{1}=@(x)a1(x);
f{2}=@(x)a2(x);
...
f{N}=@(x)aN(x);

N在这里是一个很大的数字。在所有这些函数句柄上执行累积和的最方便的方法是什么?例如我希望有一个新函数g {}的单元格:

g{1}=f{1};
g{2}=f{1}+f{2};
...
g{N}=f{1}+...+f{N}.

感谢。

1 个答案:

答案 0 :(得分:1)

如果您可以使用单一功能 g来返回标量 x的累积总和:

g = @(x) cumsum(cellfun(@(y) y(x), f))

示例:

f{1} = @(x) x;
f{2} = @(x) x^2;
f{3} = @(x) x^3;
g = @(x) cumsum(cellfun(@(y) y(x), f))
g(3)
ans =
     3    12    39

说明:cellfun获取每个组件函数f{1}f{2}等,并返回在x评估该函数的结果。每个函数的结果应该是标量。然后计算所有这些值的累积和。