Generate N observations from a uniform distribution on [0,1] and compare it to a threshold

Ayman Alotaibi (view profile)

on 10 Mar 2018
Latest activity Commented on by Ayman Alotaibi

on 10 Mar 2018

Roger Stafford (view profile)

We simulate this experiment by generating a logical array of
length N, with 1 (true) for "heads" and 0 (false) for "tails".
The problem is to generate the right number of 1s and 0s, so that
the percentage of 1s is p (60%). We shall do so in two ways.
N=1000; // number of coin tosses
p=0.6; // bias: percentage of 1s in the array
Method 1
Generate N observations from a uniform distribution on [0,1].
Threshold these observations at p. The resulting logical array
will have
1 if an observation was < p,
0 otherwise.

Show 1 older comment
Ayman Alotaibi

Ayman Alotaibi (view profile)

on 10 Mar 2018
I’ll upload what I’ve done Give me few minutes plz
Ayman Alotaibi

Ayman Alotaibi (view profile)

on 10 Mar 2018
percentageOfOnes = p;
numberOfOnes = (N * percentageOfOnes );
signal = [ones(1, numberOfOnes), zeros(1, N - numberOfOnes)]; signal = signal(randperm(length(signal))); numOnes = sum(signal);
Ayman Alotaibi

Ayman Alotaibi (view profile)

on 10 Mar 2018
but this only gives u sum of ones, how can I have two signal with sum all ones, and sum all zeros

Roger Stafford (view profile)

on 10 Mar 2018

Here's another way. Let there be N1 trues and N0 falses.
x = [repmat(true,1,N1),repmat(false,1,N0)];
x = x(randperm(N1+N0));

Show 1 older comment
Image Analyst

Image Analyst (view profile)

on 10 Mar 2018
Of course it does. Here's my proof:
N1 = 60;
N0 = 40;
x = [repmat(true,1,N1),repmat(false,1,N0)];
x = x(randperm(N1+N0));
numOnes = sum(x) % Will say 60
Now it's your turn to give your proof that it DOES NOT work.
Ayman Alotaibi

Ayman Alotaibi (view profile)

on 10 Mar 2018
can I get the sum of zeros too ? like numZeros, so it gives 40? or should I do numOnes - X ?
Ayman Alotaibi

Ayman Alotaibi (view profile)

on 10 Mar 2018
I did this code at the bottom of code, and it worked
numZeros = length(zeros(1, N - numberOfOnes)) ;