How to create random binary matrix with specified number of ones in each row and column?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Vadym Kovadlo
el 25 de Abr. de 2017
Respondida: Walter Roberson
el 13 de En. de 2019
Number of raws = M, number of columns = N, number of one's in each row = Nrow, number of one's in each column = Ncolumn.
0 comentarios
Respuesta aceptada
Walter Roberson
el 13 de En. de 2019
See https://www.mathworks.com/matlabcentral/answers/439541-how-to-create-a-random-binary-matrix-with-equal-number-of-ones-in-each-column-and-equal-number-of-1#answer_356191 for practical code (but which I do not promise will always work.)
0 comentarios
Más respuestas (1)
Jan
el 25 de Abr. de 2017
Editada: Jan
el 25 de Abr. de 2017
This will not work in general: You cannot e.g. place 2 elements per row and per column in a 5 x 5 matrix:
1 0 0 0 0 % <-- here one 1 is missing and cannot be inserted
1 1 0 0 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
But you can create a 6x6 matrix with 3 ones in each column and row.
1 comentario
Walter Roberson
el 13 de En. de 2019
Your example does not appear to be complete.
[0 0 1 1 0; 0 1 1 0 0; 1 1 0 0 0; 1 0 0 0 1; 0 0 0 1 1]
ans =
0 0 1 1 0
0 1 1 0 0
1 1 0 0 0
1 0 0 0 1
0 0 0 1 1
This is a 5 x 5 matrix with two 1's per row and per column.
Furthermore for your original matrix, insert the 1 at the top right corner:
1 0 0 0 1
1 1 0 0 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!