random number between 0 and 1

4 ビュー (過去 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 ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by