# 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 ```