假设我们有以下代码
>> 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)
>>
我们有以下图片
我想在matlab中从这个直方图生成概率,以便所有这些概率的总和应该等于1,但我不知道怎么做,所以请帮助我,提前谢谢
EDITED: 按照说明后,我得到了以下图片
答案 0 :(得分:2)
您必须进行标准化,以使总概率总和为1。
通常,这意味着对直方图进行求和,或者如果函数是连续的则进行积分,然后除以。
答案 1 :(得分:1)
如果您不了解基础分布,可能函数ksdensity(需要统计工具箱)很有用:
x = [randn(3000,1); 15+randn(3000,1)];
figure; hist(x,40)
[f,xi] = ksdensity(x);
figure; plot(xi,f);