random number between 0 and 1

1 回表示 (過去 30 日間)
minh lan
minh lan 2019 年 6 月 28 日
回答済み: vidhathri bhat 2019 年 6 月 28 日
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?

採用された回答

Stephen23
Stephen23 2019 年 6 月 28 日
編集済み: Stephen23 2019 年 6 月 28 日
>> 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
  1 件のコメント
minh lan
minh lan 2019 年 6 月 28 日
Thank you so much!

サインインしてコメントする。

その他の回答 (1 件)

vidhathri bhat
vidhathri bhat 2019 年 6 月 28 日
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;

カテゴリ

Help Center および File ExchangeRandom Number Generation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by