random number with fixed summation

I randomly generated the matrix f1; where R is 8 and T is 11. In the following we have f1.
The summation of each column should have a fixed value k, for example k=4. I found the "randfixedsum" function that perfectly generates random number with fixed summation. But the elements are not zero and 1. Could you please help me to change f1 to a matrix that the summation of each column is exactly k.
f1 =
1 0 1 0 0 0 0 1 1 0 0
1 0 0 0 0 1 1 0 1 0 0
1 0 0 1 1 1 0 0 0 0 0
1 0 1 1 0 0 1 1 1 1 1
1 1 0 1 0 0 0 1 1 1 0
0 1 1 0 1 0 1 0 1 1 0
0 1 1 0 0 0 0 1 1 0 0
0 1 1 1 1 0 1 0 1 1 0

 Respuesta aceptada

Roger Stafford
Roger Stafford el 14 de Nov. de 2016
Use the ‘randperm’ function on each column of f1:
f1 = zeros(8,11)
for ix = 1:size(f1,2)
f1(randperm(size(f1,1),k),ix) = 1;
end

Más respuestas (1)

Walter Roberson
Walter Roberson el 14 de Nov. de 2016

0 votos

There are multiple ways to handle this, but the easiest way is just to round() the numbers.

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 14 de Nov. de 2016

Comentada:

el 15 de Nov. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by