我正在尝试将高斯拟合添加到 MATLAB 中的直方图,但我不知道如何仅将拟合应用于一个特定的峰值。
http://postimg.org/image/phms61rdh/第一个情节
http://postimg.org/image/sindrn8er/第二个情节
我还发布了我一直在使用的部分代码:
data_Rb = (importdata('path\name.txt'));
counts_Rb = data_Rb.data(:,3);
figure
hist(counts_Rb, nbins);
xlim([0 120]);
title('Rubidium');
histfit(counts_Rb,1000);
pd=fitdist(counts_Rb(:),'normal')
x=0:0.001:120;
PDF=pdf(pd,x); %PDF is a vector of y values: it's our fit
PDF=PDF/max(PDF); %nor
y=ylim;
PDF=PDF*y(2);
hold on
plot(x,PDF,'r-','LineWidth',2);
hold off
这两个块给了我两个不同的高斯,如第一张图片所示。我不明白为什么它们如此糟糕地拟合数据:是因为 RHS 的尾巴吗?
在第二个图中,我只需要对最后一个峰值应用高斯拟合。我该怎么做?
最后,应用拟合后,拟合结果输出到屏幕上。是否有将它们保存到数组中以供以后使用的功能?
提前致谢!