Use a function handle inside another function handle
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sudipta Ray
am 24 Jun. 2015
Kommentiert: Sudipta Ray
am 25 Jun. 2015
I need to find out the integral of some function Let's say f(x).*sin(x). I define a function handle y=@(x)f(x); Now I want to define another function handle z as z = @(x)y.*sin(x) so that I can integrate: int = integral(z,x1,x2). Matlab does not allow me to do this. Is there a way so I can define the function separately and then define the function handle for the integrand?
0 Kommentare
Akzeptierte Antwort
Steven Lord
am 24 Jun. 2015
You're missing one small piece in your definition of z. You can't multiply a function handle and a numeric value, but you can multiply the numeric value obtained by evaluating that function handle and a numeric value.
f = @cos;
y = @(x) f(x);
z = @(x) y(x).*sin(x); % Note y(x) instead of y
To test, compare evaluating the function using the function handle and evaluating the function normally, by calling COS and SIN:
v = 0:0.1:2*pi;
usingFH = z(v);
usingFun = cos(v).*sin(v);
isequal(usingFH, usingFun)
That last statement will return true.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Function Handles finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!