MATLAB课程:代码示例之Programming(四)
Anonymous Functions
This example shows how to define functions at the command line with anonymous functions.
Integrating a FunctionConsider 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.
integral(h,1,10)
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 fevaltitle('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.
integral(f,0,pi)
ans = 2.1678
Minimizing a FunctionConsider 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);
ezplot(f); % Plot the functiontitle('f(x)=ax^2+bx+c, a=1,b=-2,c=1');hold on;% Find and plot the minimumminimum = fminbnd(f,-2,2); % We can pass the function handle directly % to the minimization routineplot(minimum,f(minimum),'d'); % We can evaluate the function without % using fevalgrid;hold off;

2D FunctionsWe can create handles to functions of many variables
a = pi;b = 15;f = @(x,y) (a*x+b*y);ezsurf(f);title('f(x,y) = ax+by, a = \pi, b = 15');

Function CompositionWe can also create handles to functions of functions
f = @(x) x.^2;g = @(x) 3*x;h = @(x) g(f(x));h(3)
ans = 27