Generate Random Sample of 0's and 1's
4 ビュー (過去 30 日間)
古いコメントを表示
Hi guys,
how do I generate a random sample of 0's and 1's of size N, such that the probability of of 1 being chosen is p.
I can create a permutation however I can't seem to incorporate probability p into it. Plus, also is there a way I could quickly sum the components of the permutation.
Thanks,
Joe
0 件のコメント
採用された回答
その他の回答 (1 件)
Rajiv Ghosh-Roy
2014 年 1 月 16 日
How about
a = rand(1, N) < p
This creates a random vector of size N, and the < will return 1 if true, 0 if false.
4 件のコメント
Rajiv Ghosh-Roy
2014 年 1 月 16 日
Please consult the help for rand. rand(1, N) will generate a 1xN vector of random numbers uniformly distributed in [0, 1]. The probability that a number is in (0, p) is then p.
Suneesh
2014 年 1 月 16 日
編集済み: Suneesh
2014 年 1 月 16 日
Joe, your problem may be stated as "Generate random numbers that have a Bernoulli distribution with the head(1) probability = p". There are several algorithms for generating random numbers and many start with generating random numbers that are uniformly distributed. This is what RAND does. The comparison " < p" owes to the inverse transform method of generating arbitrarily distributed random numbers from a uniform distribution. However, as far as I remember it should be "<=p". This method is standard in several text books on beginning probability theory. See also:
2. "Inverse Transform Method for simulating continuous random variables." in
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!