random number between 0 and 1

1 view (last 30 days)
minh lan
minh lan on 28 Jun 2019
Answered: vidhathri bhat on 28 Jun 2019
I want to create random vector between 0 and 1 for 412 elements, by using
logical(randi([0 1],[412,1]));
It's work. But now, I want to have the number of '0' is 100, the number of '1' is 312. How I can do?

Accepted Answer

Stephen23
Stephen23 on 28 Jun 2019
Edited: Stephen23 on 28 Jun 2019
>> V = [zeros(1,100),ones(1,312)];
>> V = V(randperm(numel(V)));
Checking:
>> nnz(V==0)
ans = 100
>> nnz(V==1)
ans = 312
>> V(:)
ans =
1
0
1
1
1
1
1
... lots of rows here
1
1
1
1
1
0
1
0
1
1
1

More Answers (1)

vidhathri bhat
vidhathri bhat on 28 Jun 2019
Hi
Instead of generating the array using randi function, you can create a zeroes array and pick 312 random indices and make them as one. Easy way to get what you want. Hope this helps.
x = zeros(412,1);
ind = randperm(412,312); %generates 312 unique numbers in the range 1 to 412
x(ind)=1;

Categories

Find more on Random Number Generation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!