How to create random binary matrix with specified number of ones in each row and column?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Walter Roberson
2019-1-13
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 个评论
更多回答(1 个)
Jan
2017-4-25
编辑:Jan
2017-4-25
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 个评论
Walter Roberson
2019-1-13
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!