2015-10-15 152 views
1

我可以使用逆方法創建指數分佈。我想規格化直方圖。我該怎麼做?如何歸一化直方圖

這是我的代碼

N=100; 
Lambda=2; 
r=rand(N,1); 
X=-log(1-r)/Lambda; 
hist(X), colormap(bone); 

t = 0:0.01:5; 
pdf=Lambda*exp(-Lambda*t); 
hold on, plot(t,pdf,'LineWidth',2) 
+2

請確定通過標準化直方圖 – Dan

+0

你乘以每個元素與給定的數字,'PDF你是什麼意思= C * LAMBDA * EXP(-Lambda * T);'。 –

回答

1

直方圖進行歸一化,以單位面積,以便它可以與理論PDF進行比較。爲了歸一化到單位面積需要通過樣品的數目和由箱寬度來劃分:

N = 100; 
Lambda=2; 
r = rand(N,1); 
X = -log(1-r)/Lambda; 
[hy, hx] = hist(X); %/ get histogram values 
hy = hy/numel(X)/(hx(2)-hx(1)); %//normalize histogram 
bar(hx, hy) %// plot histogram 
t = 0:0.01:5; 
pdf = Lambda*exp(-Lambda*t); 
hold on, plot(t,pdf,'LineWidth',2) %// plot pdf 

enter image description here

或者使用新histogram函數(在R2014b引入),其中根據自動規格化到指定的正常化選項:

N = 100; 
Lambda=2; 
r = rand(N,1); 
X = -log(1-r)/Lambda; 
histogram(X, 'Normalization', 'pdf') %// plot normalized histogram 
t = 0:0.01:5; 
pdf = Lambda*exp(-Lambda*t); 
hold on, plot(t,pdf,'LineWidth',2) %// plot pdf