2013-03-28 40 views
1

我需要一些關於從MATLAB中給定分佈採樣的幫助。假設我有5個bin和這些bin可能產生樣本的相應概率。 (0-19),(20-39),(40-59),(4), (60-79),(80-99)。Matlab:從分佈採樣

回答

1

如果您知道概率,您想要做的是讓每個箱在數字線上佔據其概率的比例空間,然後從該數字線中選取一個隨機數(從平坦分佈)。

簡單的例子:想到兩個箱子,一個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 
+0

謝謝,費德里科,這是我究竟是如何最終實現它。 – progfan 2013-03-28 06:46:11