Use a function handle inside another function handle
11 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Steven Lord
2015 年 6 月 24 日
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.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Function Handles についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!