Problem 1051. Exact binary matrix factorization
Given a binary-valued (only ones and zeroes) MxN matrix C, and K (where K<M and K<N) find a binary-valued MxK matrix A and a binary-valued KxN matrix B such that A*B equals C. e.g. for K = 2, and
C =
1 1 1 0
0 0 0 0
0 1 0 1then one possible solution is
A =
0 1
0 0
1 0B =
0 1 0 1
1 1 1 0For this problem, assume that at least one solution exists.
Note that you cannot do matrix multiplication with two logical matrices in MATLAB.
Solution Stats
Problem Comments
-
3 Comments
you should probably add an assert statement that checks the size of the output matrices
I second @bmtran. lu wins!
thanks, I added the extra asserts as you suggest. the other solutions submitted so far look interesting, thanks for them!
Solution Comments
Show commentsProblem Recent Solvers14
Suggested Problems
-
Extract leading non-zero digit
2196 Solvers
-
339 Solvers
-
Longest run of consecutive numbers
6250 Solvers
-
Generate N equally spaced intervals between -L and L
919 Solvers
-
Generate a random matrix A of (1,-1)
373 Solvers
More from this Author5
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!