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!