This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Anonymous Functions

This example shows how to define functions at the command line with anonymous functions.

Integrating a Function

Consider the function 10*x.


If we want to allow any multiplier of x, not just 10, we might create a variable g (where g is initially set to 10), and create a new function


Let's do this in MATLAB® by creating a function handle h.

g = 10;
h = @(x) g*x;

You can integrate the function by passing its handle to the integral function.

ans = 495.0000

Consider another function:


Create a function handle to this function where alpha = 0.9.

alpha = 0.9;
f = @(x) sin(alpha*x);

Plot the function and shade the area under it.

x = 0:pi/100:pi;
area(x,f(x)); % You can evaluate f without feval
title('f(x) = sin(\alpha x), \alpha =.9');

We can use the integral function to calculate the area under the function between a range of values.

ans = 2.1678

Minimizing a Function

Consider the function:


where a = 1, b = -2, and c = 1.

Create a function handle for it.

a = 1;
b = -2;
c = 1;
f = @(x)(a*x.^2+b*x+c);
fplot(f); % Plot the function
title('f(x)=ax^2+bx+c, a=1,b=-2,c=1');
hold on;

% Find and plot the minimum
minimum = fminbnd(f,-2,2);       % We can pass the function handle directly
                                 % to the minimization routine
plot(minimum,f(minimum),'d');    % We can evaluate the function without
                                 % using feval
hold off;

2D Functions

We can create handles to functions of many variables

a = pi;
b = 15;
f = @(x,y) (a*x+b*y);
title('f(x,y) = ax+by, a = \pi, b = 15');

Function Composition

We can also create handles to functions of functions

f = @(x) x.^2;
g = @(x) 3*x;
h = @(x) g(f(x));
ans = 27