Use a function handle inside another function handle
12 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Sudipta Ray
il 24 Giu 2015
Commentato: Sudipta Ray
il 25 Giu 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 Commenti
Risposta accettata
Steven Lord
il 24 Giu 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Function Handles in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!