Info
此问题已关闭。 请重新打开它进行编辑或回答。
Regarding random generation of elements in a matrix.
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(2 个)
Andrei Bobrov
2015-2-24
编辑:Andrei Bobrov
2015-2-24
out = zeros(1,10);
out(randperm(10,2)) = 1;
or just
out = randperm(10) > 8;
0 个评论
Roger Stafford
2015-2-24
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 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!