MATLAB实现任意函数曲线拟合(高斯曲线为例)

高斯曲线拟合

matlab实现多项式拟合的函数相对比较简单,且容易记忆,但是复杂曲线的拟合就比较繁杂,比如高斯曲线,也叫正态分布函数,线上做个笔记,大家共勉。

clc;clear;
close all;

y = [1,1,1,3,7,8,7,3,1,1,1];                             %  待拟合向量
len = length(y);                                         %  数据长度
x = 1:1:len;                                             %  时间轴坐标
figure,plot(x,y);
xlabel('Position / s');
ylabel('Intencity / cd');
title('Input Signal');

% 定义初始参数,matlab在此基础上优化,初始参数太差会导致优化效果很差
Amptittude = 7;                                         % 定义初始幅值a              
pos = 6;                                                % 定义中心横坐标b
standerror = 2;                                         % 定义标准差c
Da = 1;                                                 % 定义最低纵坐标d
gaussEqn = 'a*exp(-((x-b)/c)^2)+d';                     % 高斯方程
startPoints = [Amptittude pos standerror,Da];           % 初始参数矩阵
para1 = fit(x',y',gaussEqn,'Start', startPoints);       % 拟合命令(x、y必须是列向量)
hold on,plot(para1,x,y);                                % 绘图命令
a = getfield(para1,'a');                                % 获取指定拟合参数a

拟合前后曲线对比结果如下。
拟合前数据以及拟合后曲线

  • 14
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值