Generate Random Sample of 0's and 1's

5 visualizzazioni (ultimi 30 giorni)
Joe
Joe il 16 Gen 2014
Commentato: Suneesh il 16 Gen 2014
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

Risposta accettata

Suneesh
Suneesh il 16 Gen 2014
Modificato: Suneesh il 16 Gen 2014
MATLAB has a function RANDSRC (part of the Comm Sys Tbx) which does this.
out = randsrc(1,N,[0 1; (1-p) p])
See documentation for the function to learn more about the usage.
  2 Commenti
Joe
Joe il 16 Gen 2014
thanks this is useful, how about summing the individual components, is there a function?

Accedi per commentare.

Più risposte (1)

Rajiv Ghosh-Roy
Rajiv Ghosh-Roy il 16 Gen 2014
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 Commenti
Rajiv Ghosh-Roy
Rajiv Ghosh-Roy il 16 Gen 2014
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
Suneesh il 16 Gen 2014
Modificato: Suneesh il 16 Gen 2014
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

Accedi per commentare.

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by