File: CoinFlip.m

package info (click to toggle)
psychtoolbox-3 3.0.9%2Bsvn2579.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 63,408 kB
  • sloc: ansic: 73,310; cpp: 11,139; objc: 3,129; sh: 1,669; python: 382; php: 272; makefile: 172; java: 113
file content (28 lines) | stat: -rw-r--r-- 649 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function x = CoinFlip(ndraws,p)
% x = CoinFlip(ndraws,p)
%
% Generate a list x of zeros and ones according to coin flipping (i.e.
% Bernoulli) statistics with probability p of getting a 1.

% 1/20/97  dhb  Delete obsolet rand('uniform').
% 7/24/04  awi  Cosmetic.


% Generate ndraws random variables on the real
% interval [0,1).
unif = rand(ndraws,1);

% Find all of the ones that are less than p.
% On average, this proportion will be p.
index = find(unif < p);
[nones,m] = size(index);

% Generate an array of zeros and then set
% the ones found in the previous step to 1.
x = zeros(ndraws,1);
if (nones ~= 0)
  x(index) = ones(nones,m);
end