A blockwise Matrix transpose

375 Views Asked by At

I currently have a problem, that can be stated like this:

Given two matrices $ A= \begin{bmatrix} A_1 \\ A_2\end{bmatrix}$ and $B=\begin{bmatrix} B_1 &B_2 &B_3\end{bmatrix}$, we basically have some kind of low rank format of $A\cdot B= \begin{bmatrix} A_1 B_1 & A_1 B_2 & A_1 B_3 \\ A_2B_1 & A_2 B_2 & A_2 B_3\end{bmatrix}$ and that is fine and good.

But what I truely have is $(A\cdot B)^{\prime} := \begin{bmatrix} A_1 B_1 & A_2 B_1 \\ A_1 B_2 & A_2 B_2 \\ A_1 B_3 & A_2 B_3 \\\end{bmatrix}$, which is basically a transpose of the blocks of the above matrix, but with the blocks itself not transposed.

I now want to take this new matrix back to the low rank format $C=\begin{bmatrix} C_1\\ C_2 \\ C_3\end{bmatrix}$ and $D = \begin{bmatrix}D_1 & D_2 \end{bmatrix}$.

Is there any good method to calculate $C$ and $D$ (in the block format) from $A$ and $B$? I could calculate $(A \cdot B)^\prime$ and do a singular value decomposition. But are there any easier methods, that I have not heard of yet?

Edit: We have, that all $A_i$ are of the same size, so are $B_i$. We also want this for $C_i$ and for all $D_i$.