フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Regarding random generation of elements in a matrix.

1 回表示 (過去 30 日間)
Abhinav
Abhinav 2015 年 2 月 24 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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.

回答 (2 件)

Andrei Bobrov
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;

Roger Stafford
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

この質問は閉じられています。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by