2015-10-15 118 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