How can I generate a binary matrix with a condition on the rows and columns?

2 visualizaciones (últimos 30 días)
Hello everyone!
i have a matrix (M,N)
i want to fill it with "0" and "1" values under the following condition : sum in each row equal to 1 and the sum of each colomun equal to k
this is an example of the required result , which k=2
1 0 0 0 0
1 0 0 0 0
0 1 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 1
Would you please help me ?

Respuesta aceptada

Walter Roberson
Walter Roberson el 18 de Ag. de 2022
M = 10; N = 5;
k = 2;
if M ~= N * k
error('inconsistent sizes, would not be able to create a matrix with the required properties')
end
output = repelem(eye(N), k, 1)
output = 10×5
1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by