Random Binary Matrix with certain weight

In leaner codes (n,k), I want to generate a random binary matrix of size (1, n) with weight (t)
I can use A = randi ([0 1], 1, n); OR A=fix(2*rand(1,n));
But this will generate a matrix A of different weights. To get a vector of weight (t), will need exhaustive search which is time-consuming.
I need a command that can generate this matrix or vector of weight (t) distributed randomly in A=(1,n).
Can you help pls?

 採用された回答

Walter Roberson
Walter Roberson 2016 年 11 月 25 日

1 投票

v = [ones(1,t), zeros(1,n-t)];
A = v( randperm(n) );

1 件のコメント

Moe Joe
Moe Joe 2016 年 11 月 26 日
Thanks a Million dear Walter.

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

その他の回答 (1 件)

John BG
John BG 2016 年 11 月 26 日

0 投票

Moe
the weight function that you may be asking for is the shape of
w=randperm(numel(nA))/sum(nA)
this w is only an example, but the key point you need to have in the weight vector is
sum(w)
=
1
I understand that because you add time dependency to the weight vector w, this is going to change, so fast does w change?
John BG

2 件のコメント

Moe Joe
Moe Joe 2016 年 11 月 26 日
編集済み: Moe Joe 2016 年 11 月 26 日
No dear, t is not time, it refers to the number of errors in the Victor of length n. The idea is to generate a Victor of length n, and weight t. The answer of Walter is perfect. I appreciate both of you.
John BG
John BG 2016 年 12 月 1 日
good to know, next time please give all question related in one go, not by instalments, will you?

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

カテゴリ

製品

質問済み:

2016 年 11 月 25 日

コメント済み:

2016 年 12 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by