Clear Filters
Clear Filters

Why I got the error "Undefined operator '*' for input arguments of type 'function_handle"?

12 views (last 30 days)
My code:
f=@(x)x+1
g=@(x)x*f+4
g(1)

Accepted Answer

Stephen23
Stephen23 on 18 Feb 2016
Edited: Stephen23 on 18 Feb 2016
You need to call the function f, like this:
g=@(x)x*f(x)+4
f is a function handle, not a numeric value. Function handles cannot be multiplied. Only when you call the function handle with its input does it return a numeric value, which can then be multiplied.
This is just like any other function in MATLAB:
5*sin % error, because sin is a function not a value
5*sin(pi) % okay, the function sin returns a numeric value

More Answers (0)

Categories

Find more on Multidimensional Arrays 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!