从直方图生成概率

时间:2014-07-10 17:13:34

标签: matlab histogram probability

假设我们有以下代码

>> B=xlsread('data_generations1','A1','g8:g301');
>> [pxx,f]=periodogram(B,[],[],100);
>> [peaks,location]=findpeaks(pxx);
>> length(peaks)

ans =

    88

>> hist(peaks,40)
>> [pxx,f]=periodogram(B,[],[],100);
>> pxn=pxx./sum(pxx);
>> [peaks,location]=findpeaks(pxn);
>> hist(peaks,40)
>> 

我们有以下图片

enter image description here

我想在matlab中从这个直方图生成概率,以便所有这些概率的总和应该等于1,但我不知道怎么做,所以请帮助我,提前谢谢

EDITED: 按照说明后,我得到了以下图片

enter image description here

2 个答案:

答案 0 :(得分:2)

您必须进行标准化,以使总概率总和为1。

通常,这意味着对直方图进行求和,或者如果函数是连续的则进行积分,然后除以。

答案 1 :(得分:1)

如果您不了解基础分布,可能函数ksdensity(需要统计工具箱)很有用:

x = [randn(3000,1); 15+randn(3000,1)];
figure; hist(x,40)

enter image description here

[f,xi] = ksdensity(x);
figure; plot(xi,f);

enter image description here