0

ポイントKは、可能なポイントから選択する必要があります。Kは、既知の確率分布を持つ確率変数です。この分布のためにポイントの1つを選択したい...どうすればそれを行うことができますか?

例:ポイント:3 5 6 8確率:0.2 0.4 0.1 0.3

その確率からポイントを一つ選びたいと思います。

4

2 に答える 2

3

を使用randして、範囲内の乱数を生成します[0.0, 1.0)[0.0,0.2)select3にある場合、乱数がselect[0.2,0.6)にある場合5など

于 2012-08-13T09:02:53.823 に答える
3

正確な関数については説明しませんが、以下に示すコードを使用すると、関数に非常に簡単にラップできるはずです。

このソリューションは、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
于 2012-08-13T09:16:01.653 に答える