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?

 Accepted Answer

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

More Answers (1)

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 Comments

Moe Joe
Moe Joe on 26 Nov 2016
Edited: Moe Joe on 26 Nov 2016
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.
good to know, next time please give all question related in one go, not by instalments, will you?

Sign in to comment.

Products

Asked:

on 25 Nov 2016

Commented:

on 1 Dec 2016

Community Treasure Hunt

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

Start Hunting!