【问题标题】:How to select a point K with a known probability distribution?如何选择具有已知概率分布的点 K?
【发布时间】:2012-08-09 11:38:54
【问题描述】:

点K必须从可能的点中选出,K是一个已知概率分布的随机变量。由于这种分布,我想选择一个点...我该怎么做?

例如: 分数:3 5 6 8 概率:0.2 0.4 0.1 0.3

我想根据概率选择其中一个点。

【问题讨论】:

标签: matlab probability


【解决方案1】:

我不会为您提供确切的函数,但是,使用下面提供的代码应该非常容易将其包装到函数中。

该解决方案基于 Marks 原始评论,但使用cumsum() 使实现更容易一些。

%# Set up point labels and probabilities (input parameters to function)
labels = [3 5 6 8];
probabilities = [0.2 0.4 0.1 0.3];

%#Find cumulative distribution
cp = [0 cumsum(probabilities)];

%#Draw point at random according to probability density
draw = rand();
higher = find(cp >= draw==1,1);
drawnPoint = labels(higher-1); %# Output result from function

【讨论】:

    【解决方案2】:

    使用rand[0.0, 1.0) 范围内生成一个随机数。如果在[0.0,0.2) 中选择3,如果随机数在[0.2,0.6) 中选择5等等

    【讨论】:

    • 谢谢。但是如果点太多了怎么办……有什么方法可以定义一个函数吗?
    • 是的,当然有定义函数的方法。如果您没有编写 Matlab 函数的经验,那么编写这个函数对您来说是一个很好的介绍。当您发布代码时,我会提供更多帮助,但我不会为您编写。我想其他人可能会来做那件事。
    • 非常感谢。我有一些经验,但不使用概率分布。告诉我一般怎么做,我自己写代码就行了……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 2017-11-23
    • 2019-09-14
    • 2021-12-29
    • 1970-01-01
    • 2016-07-28
    • 2014-06-14
    相关资源
    最近更新 更多