Date: Jan 16, 2013 11:46 AM
Author: Steven Lord
Subject: Re: sum of function handles

"dert " <> wrote in message
> Hi, i want to sum two function handle. the functions that i want to sum
> are following;
> f1=0;
> for i=1:20
> f2=f2(x(1),x(2),x(3))
> f1=f1+f2 end
> how can i do by using function handle? the following is true?
> f1=@(x)(0); for i=1:20
> f2=@(x)(f2(x(1),x(2),x(3)))
> f1=@(x)(f1(x)+ f2(x));
> end
> Can anyone help me? Because i use this last summation function for
> fminsearch

One way to do it:

functionsTBE = cell(1, 5);
testvalue = 0;
for k = 1:5
functionsTBE{k} = @(x) sin(k*x);
testvalue = testvalue + functionsTBE{k}(3);
f = @(x) sum(cellfun(@(y) y(x), functionsTBE));
f(3) % Should match testvalue

Alternately, if your expressions aren't too complicated and you have
Symbolic Math Toolbox, write your functions as symbolic expressions, add
them, then use matlabFunction to convert the sum into a function.

Steve Lord
To contact Technical Support use the Contact Us link on