1
我需要一些關於從MATLAB中給定分佈採樣的幫助。假設我有5個bin和這些bin可能產生樣本的相應概率。 (0-19),(20-39),(40-59),(4), (60-79),(80-99)。Matlab:從分佈採樣
我需要一些關於從MATLAB中給定分佈採樣的幫助。假設我有5個bin和這些bin可能產生樣本的相應概率。 (0-19),(20-39),(40-59),(4), (60-79),(80-99)。Matlab:從分佈採樣
如果您知道概率,您想要做的是讓每個箱在數字線上佔據其概率的比例空間,然後從該數字線中選取一個隨機數(從平坦分佈)。
簡單的例子:想到兩個箱子,一個40%,另一個60%。從0到1選擇一個隨機數,如果它是.40或更低,可以說它是從bin1「被拉出」的。如果上面.40「被從bin2中拉出」。
這是低於不好砍,但如果你不能找到任何優雅....
a = .1
b = .2 + a
c = .4 + b
d = .2 + c
e = .1 + d %cumulative probabilities (i.e. cdf)
random = Random() %from 0 to 1 %pick random number
if(0 < random < = a) => bin1
if(a < random < = b) => bin2
if(b < random < = c) => bin3
if(c < random <= d) => bin4
if(d <= random) => bin5
謝謝,費德里科,這是我究竟是如何最終實現它。 – progfan 2013-03-28 06:46:11