我有一个函数句柄单元格:
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}.
感谢。
答案 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
评估该函数的结果。每个函数的结果应该是标量。然后计算所有这些值的累积和。