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

조회 수: 1 (최근 30일)
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.
  댓글 수: 4
Ayman Alotaibi
Ayman Alotaibi 2018년 3월 10일
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 2018년 3월 10일
but this only gives u sum of ones, how can I have two signal with sum all ones, and sum all zeros

댓글을 달려면 로그인하십시오.

채택된 답변

Roger Stafford
Roger Stafford 2018년 3월 10일
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));
  댓글 수: 4
Ayman Alotaibi
Ayman Alotaibi 2018년 3월 10일
can I get the sum of zeros too ? like numZeros, so it gives 40? or should I do numOnes - X ?
Ayman Alotaibi
Ayman Alotaibi 2018년 3월 10일
I did this code at the bottom of code, and it worked
numZeros = length(zeros(1, N - numberOfOnes)) ;

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Octave에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by