[英]How would you normalize a histogram so the sum of each bin is 1?
您如何將直方圖A
歸一化,因此每個bin的總和為1
將直方圖除以垃圾箱的寬度,如何繪制
我有這個
dist = rand(50)
average = mean(dist, 1);
[c,x] = hist(average, 15);
normalized = c/sum(c);
bar(x, normalized, 1)
在這種情況下, n = 50
,
N(mean, (variance^2) / 50)
,但是如何? 直方圖必須接近正態分布。
這是歸一化概率密度函數的非常不尋常的方式。 我假設您要標准化,以使曲線下的面積為1。在這種情況下,這就是您應該做的。
[c,x]=hist(average,15);
normalized=c/trapz(x,c);
bar(x,normalized)
無論哪種方式,要回答您的問題,都可以使用randn
生成正態分布。 現在,您將生成一個50x50
均勻分布矩陣,並沿一維求和,以近似正態高斯。 這是不必要的。 要生成1000個點的正態分布,請使用randn(1000,1)
如果要使用行向量,請對其進行轉置或翻轉數字。 要生成均值mu
和方差sigma2
的高斯分布,並繪制其pdf,可以這樣做(一個示例)
mu=2;
sigma2=3;
dist=sqrt(sigma2)*randn(1000,1)+mu;
[c,x]=hist(dist,50);
bar(x,c/trapz(x,c))
盡管可以使用統計工具箱中的專用功能來完成這些操作,但這同樣簡單,簡單,並且不需要其他工具箱。
編輯
我錯過了您想知道如何生成均勻分布的部分。 rand
,默認情況下為您提供[0,1]
上均勻分布的隨機變量。 要從[a, b]
之間的均勻分布獲得rv,請使用a+(ba)*rand
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.