Clear Filters
Clear Filters

Random Binary Matrix with certain weight

3 views (last 30 days)
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

Walter Roberson
Walter Roberson on 25 Nov 2016
v = [ones(1,t), zeros(1,n-t)];
A = v( randperm(n) );

More Answers (1)

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

Sign in to comment.

Categories

Find more on Introduction to Installation and Licensing in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!