Create a vector with binary values {0,1} with certain percentage of 0's and 1's

5 ビュー (過去 30 日間)
Syed
Syed 2020 年 5 月 28 日
コメント済み: KSSV 2020 年 5 月 28 日
Hi all,
It may be a pretty simple question for many, but I cannot figure out the answer.
I am developing a simualtion in which 1 denotes device ON and 0 denotes OFF. My simulation has x% ON devices (and of course (1-x) % OFF devices).
So, device 1 is denoted by element 1, dev. 2 by element 2 and so on...
In my simulation, I am working in vector mode (I avoid loops).
How can I generate vector of Zeros and Ones (0,1) in which x% elements are 1, rest are 0.
I need something like this (randomly generated in each simulation run)
[1 1 1 0 1 1 0 0 1 0 1 1 0 0 1]
1 => Dev ON
0 => Dev OFF

採用された回答

KSSV
KSSV 2020 年 5 月 28 日
編集済み: KSSV 2020 年 5 月 28 日
N = 10 ; % total numner of elements
O = 6 ; % Number of 1 needed
F = N-O ; % Number of 0
O = ones(1,O) ;
F = zeros(1,F) ;
T = [O F] ;
idx = randperm(N) ; % randomise the indices
T = T(idx)
  1 件のコメント
KSSV
KSSV 2020 年 5 月 28 日
Alternative a code with less steps:
N = 10 ; % total numner of elements
O = 6 ; % Number of 1 needed
T = zeros(1,N) ;
idx = randperm(N,O) ;
T(idx) = 1

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeApp Building についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by