如何选择具有已知概率分布的点K?

时间:2012-08-13 08:54:41

标签: matlab probability

必须从可能的点中选择点K,K是具有已知概率分布的随机变量。我想选择其中一个点,因为这个分布......我怎么能这样做?

例如: 要点:3 5 6 8 概率:0.2 0.4 0.1 0.3

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我不会为您提供一个确切的功能,但是,使用下面提供的代码将它包装成函数非常容易。

该解决方案基于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