Main Content

Handle to function

A function handle is a MATLAB^{®} data type that represents a function. A typical use of function handles is to
pass a function to another function. For example, you can use function handles as input
arguments to functions that evaluate mathematical expressions over a range of values. Other
typical uses of function handles include:

Specifying callback functions (for example, a callback that responds to a UI event or interacts with data acquisition hardware).

Constructing handles to functions defined inline instead of stored in a program file (anonymous functions).

Create a function handle using the `@`

operator. Function handles can
represent either named or anonymous functions.

*Named function handles*represent functions in existing program files, including functions that are part of MATLAB and functions that you create using the`function`

keyword. To create a handle to a named function, precede the function name with`@`

.For example, create a handle to the

`sin`

function, and then use`fminbnd`

to find the value of*x*that minimizes sin(*x*) in the range from 0 to $$2\pi $$:f = @sin; m = fminbnd(f,0,2*pi);

*Anonymous function handles*(often called*anonymous functions*) represent single inline executable expressions that return one output. To define an anonymous function, enclose input argument names in parentheses immediately after the`@`

operator, and then specify the executable expression.For example, create a handle to an anonymous function that evaluates the expression

*x*^{2}−*y*^{2}:f = @(x,y) (x.^2 - y.^2);

Anonymous functions can accept multiple inputs but return only one output.