matlab中的多峰高斯拟合,成功拟合3个波峰

matlab代码,可直接复制看效果

 x=[184
184.67
185.33
186
186.67
187.33
188
188.67
189.33
190
190.67
191.33
192
192.67
193.33
194
194.67
195.33
196
196.67
197.33
198
198.67
199.33
200
200.67
201.33
202
202.67
203.33
204
204.67
205.33
206
206.67
207.33
208
208.67
209.33
210
210.67
211.33
212
212.67
213.33
214
214.67
215.33
216
216.67
217.33
218
218.67
219.33
220]
y=[35.967
36.463
37.158
52.127
73.287
79.265
73.956
55.227
40.354
37.83
38.708
37.071
37.266
36.069
34.873
35.069
35.71
35.725
35.829
44.345
64.423
68.749
51.984
41.757
38.531
37.396
39.361
38.696
38.277
37.67
36.82
36.985
37.449
38.765
46.733
59.455
53.104
40.714
37.423
36.738
38.035
37.32
36.954
37.158
37.554
37.423
37.219
38.488
42.753
50.606
45.096
37.769
36.595
35.597
37.097]
%  y=xd1(44:98);
%  x=s(44:98);
 %上面是需要拟合的数据点
y1=fliplr(y)/fliplr(max(y));
x1=fliplr(x)/fliplr(max(x));
% 上面是将数据从小到大排列,并且归一化。

ymax=max(y); %确定y 纵轴的最大值,将来复原使用。



%% Calculate coefficient  定义拟合的函数,这个函数工作在[01] 区间,参看fittype的帮助文件。
% fun=fittype('A*exp(-(x-mu)^2/(2*sigma^2))+A1*exp(-(x-mu1)^2/(2*sigma1^2))');
% fun=fittype('A*exp(-(x-mu)^2/(2*sigma^2))');
fun=fittype('gauss4');
[cf,gof]=fit(x1(:),y1(:),fun,'Start',[]);

a=coeffvalues(cf)
%求出拟合系数的结构体cf 。
%% Interpolate the data对你的数据进行插值,这样画图会比较好看。
k=1:length(x1);
ki=linspace(1,length(x1),2000);
xi=interp1(k,x1,ki,'linear');
yi=interp1(k,y1,ki,'linear');
%计算拟合后的数据(Y)同时将y的数值还原。
 Yi=(a(1)*exp(-(xi-a(2)).^2/(2*a(3)^2))+a(4)*exp(-(xi-a(5)).^2/(2*a(6)^2))+a(7)*exp(-(xi-a(8)).^2/(2*a(9)^2))+a(10)*exp(-(xi-a(11)).^2/(2*a(12)^2)))*ymax;
% Yi=(a(1)*exp(-(xi-a(2)).^2/(2*a(3)^2))+a(4)*exp(-(xi-a(5)).^2/(2*a(6)^2))+a(7)*exp(-(xi-a(8)).^2/(2*a(9)^2)))*ymax;
%  Yi=(a(1)*exp(-(xi-a(2)).^2/(2*a(3)^2)))*ymax;
figure(9);
%% plot data
plot(x,y,'ro');  % 原始数据
hold on
figure(10);
plot(xi*max(x),Yi,'b'); % 拟合曲线

拟合前的原始数据
在这里插入图片描述
拟合后的数据
在这里插入图片描述
第四个波峰拟合失败,还在思考中,若有朋友弄明白,望不吝赐教。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>