Writing summation inside function handle
Ältere Kommentare anzeigen
Hey,
I have this term
u = @(x) c(1)*f(3*(x-t(1)))+c(2)*f(3*(x-t(2)))+c(3)*f(3*(x-t(3)))+c(4)*f(3*(x-t(4)))+...
c(5)*f(3*(x-t(5)))+c(6)*f(3*(x-t(6)));
inside a function I have written. What I want is to write these six terms here using summation. So how should I go about it?
3 Kommentare
John D'Errico
am 10 Nov. 2021
It depends. Is the function f vectorized? If it is, then the answer is simple, even trivial. But if you cannot pass a vector of elements to the function f and have f operate on each element independently, then the solution will be more complicated, and very different.
So everything depends on the function f, and since we are not told what f is or how it is written, then no definitive answer is possible.
Saurabh Madankar
am 10 Nov. 2021
Saurabh Madankar
am 10 Nov. 2021
Antworten (1)
Aneela
am 19 Feb. 2024
Hi Saurabh Madankar,
You can make use of the “sum” and “arrayfun” MATLAB functions to write these 6 terms using summation.
u = @(x) sum(arrayfun(@(k) c(k) * f (3 * (x - t(k))), 1:6));
Refer to the following links for further details on “sum” and “arrayfun“ functions in MATLAB.
Kategorien
Mehr zu Performance and Memory finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!