确定MATLAB正态分布适合的高度我公司生产使用MATLAB中的histfit
功能正常分布拟合直方图和包括误差线如下:你怎么能histfit
h = histfit(data);
[nelements,bincenters] = hist(data);
hold on
err = sqrt(nelements);
errorbar(bincenters, nelements, err);
hold off
其中“数据“是m个数据点的向量,用于进行分布,”dataerror“是每个点上的误差向量。来自histfit
的正态分布导致可能与“数据错误”中的平均误差栏不同的标准偏差。我想通过绘制一个单独的正态分布来直观地检查这种差异,该正态分布的平均值是avg = mean(data);
,而我的已知错误stdev = mean(dataerrors);
给出了一个标准差。我这样做以下列方式:
x = sort(data);
y = exp(- 0.5 * ((x - avg)/stdev) .^ 2)/(stdev * sqrt(2 * pi));
plot(x, y,'k')
当我做到这一点,均值和标准差的外观接近,但分布不匹配,因为histfit
分布不是标准化的高度,但在第二次分配是。我可以通过发明一个比例因子或y
点来做临时更正,但我需要这个自动化,所以需要相应地知道高度并进行比例缩放。
如果我能以某种方式从histfit
测量分布的高度,我可以缩放第二分布相匹配。或者,我可以以允许输入已知平均值和标准偏差的方式拟合第二个分布,然后适合分布的高度。
理想的方法是将第二个正态分布与数据分开拟合。通过这种方式,高度可能不同,但对于分布的尾部,拟合会更好。
所以问题是:
如何这些分布进行缩放高度来匹配? 或 如何以与histfit相似的方式将高斯分布(使用高度作为参数)与已知平均值和标准偏差分别拟合?
除非标准偏差是一样的,但这种方法修复反正我的具体应用问题这不匹配的高度。 –