您的位置 首页 > 数码极客

matlab一个函数中如何调用另外一个函数的结果

非线性函数的运算

函数句柄

可以创建任何 matlab® 函数的句柄,并将该句柄用作引用该函数的一种方式。函数句柄通常在参数列表中传递给其他函数,然后,其他函数可以使用该句柄执行或计算相应函数。

在 MATLAB 中,使用 at 符号 @ 在函数名称前面构造函数句柄。下面的示例为 sin 函数创建一个函数句柄,并将其赋值给变量 fhandle

fhandle = @sin;

您可以按照使用函数名称调用函数的相同方式,通过函数句柄来调用函数。语法为

fhandle(arg1, arg2, ...);

下面显示的函数 plot_fhandle 接收函数句柄和数据,使用函数句柄生成 y 轴数据,并对数据绘图:

function plot_fhandle(fhandle, data) plot(data, fhandle(data))

当调用带有如下 sin 函数的句柄和参数的 plot_fhandle 时,得到的计算结果会生成正弦波图:

plot_fhandle(@sin, -pi:0.01:pi)

功能函数

名为“接受函数句柄的函数”的函数类与标量变量的非线性函数配合使用。也就是说,某个函数基于另一个函数运行。接受函数句柄的函数包括

  • 找零

  • 优化

  • 正交

  • 常微分方程

MATLAB 通过定义非线性函数的文件来表示非线性函数。例如,以下是 matlab/demos 文件夹中的 humps 函数的简化版本:

function y = humps(x) y = 1.).^2 + .01) + 1.).^2 + .04) - 6;

使用以下命令在区间 0 ≤ x ≤ 1 中的一组点处计算此函数

x = 0:.002:1; y = humps(x);

然后,使用以下命令绘制该函数

plot(x,y)

此图形表明,该函数在 x = 0.6 附近具有局部最小值。函数 fminsearch 会求最小值,即此函数采用此最小值时的 x 值。fminsearch 的第一个参数是此函数达到最小值时的函数句柄,第二个参数是猜测的最小值的大致位置:

p = fminsearch(@humps,.5) p = 0.6370

要在极小值处计算此函数,

humps(p) ans = 11.2528

数值分析采用术语正交和积分来区别定积分的近似数值和常微分方程的数值积分。MATLAB 正交例程包括 quadquadl。语句

Q = quadl(@humps,0,1)

计算此图形中曲线下方的面积,并生成

Q = 29.8583

最后,此图形表明该函数在此区间中永远不会为零。这样,如果使用

z = fzero(@humps,.5)

搜索零,则会在此区间外部找到一个零

z = -0.1316

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“matlab一个函数中如何调用另外一个函数的结果”边界阅读