Suppose you have a matrix that contains a lot zeros (like spare matrix). Is there any known transformation that can gather non-zero values (e.g. into a corner of the matrix)?I am not sure but I think such transformation is very likely to be non-linear.
There is a naïve transformation can be used as an example of the intention (however it does not well achieve the above objective). You can count the number of zeros of each row and rearrange rows by those counts in an ascending order. This can be done by multiplying a corresponding permutation matrix on the left. Then you can count the number of zeros of each column and do the same thing -- rearrange the columns by those counts in an ascending order.
After rearrangement of both rows and columns, a sparse matrix would approximate a diagonal block matrix, as shown below, with blue color meaning 0.
However, I am asking if there is any transformation that can lump most non-zero values into approximately one block, rather than a diagonal block.
It would be greatly appreciated if someone could help provide some hint or reference.