# function_handle

Handle to function

## Description

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).

## Creation

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 x2y2:

f = @(x,y) (x.^2 - y.^2);

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

## Examples

collapse all

In a file in your current folder, create a function named cubicPoly that accepts an input to evaluate the cubic polynomial ${\mathit{x}}^{3}+{\mathit{x}}^{2}+\mathit{x}+1$.

function y = cubicPoly(x)
y = x.^3 + x.^2 + x + 1;
end

To find the integral of cubicPoly from 0 to 1, pass a handle to the cubicPoly function to integral.

q = integral(@cubicPoly,0,1)
q = 2.0833

Create the handle f to an anonymous function that evaluates the cubic polynomial ${\mathit{x}}^{3}+{\mathit{x}}^{2}+\mathit{x}+1$ for a given value of $\mathit{x}$.

f = @(x) x.^3 + x.^2 + x + 1;

To find the integral of the anonymous function from 0 to 1, pass its handle to integral.

q = integral(f,0,1)
q = 2.0833

## Version History

Introduced before R2006a