【问题标题】:generate probabilities from histogram从直方图生成概率
【发布时间】:2014-07-10 17:13:34
【问题描述】:

假设我们有以下代码

>> 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,但我不知道该怎么做,所以请帮助我,提前谢谢

编辑: 按照说明,我得到了下面的图片

【问题讨论】:

    标签: matlab histogram probability


    【解决方案1】:

    您必须进行归一化,以使总概率之和为 1。

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

    【讨论】:

    • peaks./sum(peaks) 像这样吗?
    • @datodatuashvili - 是的
    • 但是如何确定分布的类型?
    【解决方案2】:

    如果您不知道底层分布,也许函数 ksdensity(需要统计工具箱)很有用:

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

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

    【讨论】:

    • 我将绘制结果,请告诉我哪种分布类型可以?
    • 它是什么类型的分发?我已经上传了图片
    • 我不知道您的数据分布类型,但 ksdensity 不需要该信息。如果你知道分布,histfit 函数可能是更好的选择。
    • 我已经问了另一个与分发有关的问题,提前谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 2014-04-24
    • 2021-08-19
    • 2018-04-16
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    相关资源
    最近更新 更多