• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab匿名函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Matlab可以通过function去定义一些功能函数,这使得代码变得简洁和高效。但是如果遇到的是一些简单的数学公式组成的函数表达式,继续用function去定义函数,似乎显得有些冗杂和多余。这时候,就可以尝试运用匿名函数了。


匿名函数的基本格式

handle = @(arglist)anonymous_function

其中handle为调用匿名函数时使用的名字。arglist为匿名函数的输入参数,可以是一个,也可以是多个,用逗号分隔。anonymous_function为匿名函数的表达式。


匿名函数的案例

按照基本格式,我们做一个小案例来测试。

案例场景

这里测试的是 RBF径向基函数,他的表达式是是这样的:

\[K_{R B F}\left(\mathbf{X}, \mathbf{X}_{i}\right)=\exp \left(-\frac{\left\|\mathbf{x}-\mathbf{x}_{i}\right\|^{2}}{r^{2}}\right) \]

其中$ \mathbf{X}$ 是样本点,\(\mathbf{X}_{i}\) 是测试点,\(r\) 是核参数。

设样本点为0,测试点为-5到5,核参数分别取0.2、0.5、1.0、2.0。对比四种情况下的曲线变化规律。


案例代码

clc,clear,close all;

% 定义匿名函数
K_RBF = @(x,xi,r) exp(-(x-xi).^2./(r.^2));

% 设置变量取值范围
xi = -5:0.01:5;
x = zeros(size(xi));
r = [0.2;0.5;1.0;2.0]*ones(size(xi));

% 画图基础设置
curveType = {\'r-\',\'b--\',\'r-.\',\'b-.\'};
r_legend = {\'r=0.2\',\'r=0.5\',\'r=1.0\',\'r=2.0\'};

% 画取不同的 r 值下的函数
for i = 1:length(curveType)
    plot(xi,K_RBF(xi,x,r(i,:)),curveType{i},\'linewidth\',2);
    hold on
end

% 设置图像参数
set(gca,\'fontsize\',24),set(gcf,\'outerposition\',get(0,\'screensize\'));
legend(r_legend),xlabel(\'x_i\'),ylabel(\'核函数值K(x,x_i)\');
title(\'RBF核函数在测试点 x=0 处的映射关系\');

% 保存图像
print(gcf,\'-djpeg\',\'-r300\',\'RBF核函数在测试点 x=0 处的映射关系\');

输出结果


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi设计带图标的菜单.6发布时间:2022-07-18
下一篇:
Delphi中正常窗口的实现发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap