確定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相似的方式將高斯分佈(使用高度作爲參數)與已知平均值和標準偏差分別擬合?
除非標準偏差是一樣的,但這種方法修復反正我的具體應用問題這不匹配的高度。 –