Info
This question is closed. Reopen it to edit or answer.
Regarding random generation of elements in a matrix.
1 view (last 30 days)
Show older comments
I have a code like this
randi([0 1],1,10)
I want it to generate random 0 and 1. But I want that it should generate at max two ones. For e.g. I should get eight zeros and two ones randomly. Please tell how to do.
0 Comments
Answers (2)
Andrei Bobrov
on 24 Feb 2015
Edited: Andrei Bobrov
on 24 Feb 2015
out = zeros(1,10);
out(randperm(10,2)) = 1;
or just
out = randperm(10) > 8;
0 Comments
Roger Stafford
on 24 Feb 2015
You stated "at max two ones", Abhinav. If you want to include the cases where there are less than two 1's, you could do it this way:
A = zeros(1,10);
if rand <= 55/56
i1 = randi(10);
A(i1) = 1;
if rand <= 45/55
i2 = randi(9);
if i2 >= i1
i2 = i2 + 1;
end
A(i2) = 1;
end
end
0 Comments
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!