sum of function handles
7 views (last 30 days)
Show older comments
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
3 Comments
Jan
on 16 Jan 2013
@dert: Please do not cross post. Posting a question in several forums at the same time wastes the time of the voluntary helpers.
Walter Roberson
on 16 Jan 2013
Answers (2)
Thorsten
on 16 Jan 2013
Do you want to evaluate f2 20 times and store the summed result in f1? Than you can use this:
f1 = 0;
for i=1:20
f1 = f1 + f2(x(1),x(2),x(3));
end
Otherwise, please explain what you want to do.
0 Comments
Umar Ceres
on 20 Nov 2023
So this thread is quite old and seems nobody has posted a method to sum function handles and have a resulting anonymous function. See the following:
a1 = @(x) x(1).^2 + x(2).^2;
a2 = @(x) x(1) + x(2);
syms x [1 2] matrix
a = a1(x) + a2(x)
a_syms = symmatrix2sym(a)
a_anon = matlabFunction(a_syms)
1 Comment
Dyuman Joshi
on 20 Nov 2023
@Umar Ceres, How will you proceed with the same method if a1 and a2 are defined as follows -
a1 = @(x) sum(x(1:randi(numel(x))).^2);
a2 = @(x) sum(x(1:randi(numel(x))));
See Also
Categories
Find more on Function Creation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
