文档gydF4y2Ba

匿名函数gydF4y2Ba

这个例子展示了如何在命令行中用匿名函数定义函数。gydF4y2Ba

将一个函数gydF4y2Ba

考虑到功能gydF4y2Ba10 * xgydF4y2Ba.gydF4y2Ba

如果我们想让gydF4y2BaxgydF4y2Ba,而不仅仅是10,我们可以创建一个变量gydF4y2BaggydF4y2Ba(gydF4y2BaggydF4y2Ba初始设置为10),并创建一个新函数gydF4y2Ba

让我们在MATLAB®中创建一个函数句柄来做这件事gydF4y2BahgydF4y2Ba.gydF4y2Ba

g = 10;H = @(x) g*x;gydF4y2Ba

可以将函数的句柄传递给gydF4y2Ba积分gydF4y2Ba函数。gydF4y2Ba

积分(h 1 10)gydF4y2Ba
ans = 495.0000gydF4y2Ba

考虑另一个函数:gydF4y2Ba

为这个函数创建一个句柄gydF4y2Baα= 0.9gydF4y2Ba.gydF4y2Ba

α= 0.9;F = @(x) sin(x);gydF4y2Ba

画出功能和阴影下的区域。gydF4y2Ba

x = 0:π/ 100:π;区(x, f (x));gydF4y2Ba你可以在没有feval的情况下计算fgydF4y2Ba标题(gydF4y2Ba'f(x) = sin(x), (x) =.9'gydF4y2Ba);gydF4y2Ba

我们可以使用gydF4y2Ba积分gydF4y2Ba函数来计算函数下一个值范围之间的面积。gydF4y2Ba

积分(f, 0,π)gydF4y2Ba
ans = 2.1678gydF4y2Ba

一个函数最小化gydF4y2Ba

考虑到功能:gydF4y2Ba

在哪里gydF4y2BaA = 1 b = -2gydF4y2Ba和gydF4y2Bac = 1gydF4y2Ba.gydF4y2Ba

为它创建一个函数句柄。gydF4y2Ba

= 1;b = 2;c = 1;f = @ (x) (* x ^ 2 + b * x + c);gydF4y2Ba
fplot (f);gydF4y2Ba%绘制函数gydF4y2Ba标题(gydF4y2Baf (x) = ax ^ 2 + bx + c, a = 1, b = 2, c = 1 'gydF4y2Ba);持有gydF4y2Ba在gydF4y2Ba;gydF4y2Ba找出最小值并绘图gydF4y2Ba最小= fminbnd (f 2 2);gydF4y2Ba我们可以直接传递函数句柄gydF4y2Ba%到最小化程序gydF4y2Ba情节(至少,f(最低),gydF4y2Ba' d 'gydF4y2Ba);gydF4y2Ba我们可以对函数求值gydF4y2Ba%使用函数宏指令gydF4y2Ba网格;持有gydF4y2Ba从gydF4y2Ba;gydF4y2Ba

二维函数gydF4y2Ba

我们可以为许多变量的函数创建句柄gydF4y2Ba

=π;b = 15;F = @(x,y) (a*x+b*y);fsurf (f);标题(gydF4y2Ba'f(x,y) = ax+by, a = \pi, b = 15'gydF4y2Ba);gydF4y2Ba

函数组合gydF4y2Ba

我们还可以创建函数的函数句柄gydF4y2Ba

F = @(x) x.^2;G = @(x) 3*x;H = @(x) g(x);h (3)gydF4y2Ba
ans = 27gydF4y2Ba
这个话题有用吗?gydF4y2Ba