Main Content

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

    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 x3+x2+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 x3+x2+x+1 for a given value of 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
Introduced before R2006a