So, earlier today I asked the question
How to transform this matrix & swap its columns in a simple way?
and was given useful and elaborated answers. Now, I'm still not used to the "Array", "Reverse", "Map", etc. functions (which were new to me this morning) and this question is in fact a particular case of the other one :
I would like to transform matrix $\mathbf A = \begin{pmatrix} a_{11}&b_{11}&a_{12}&b_{12}&a_{13}&b_{13}\\ a_{21}&b_{21}&a_{22}&b_{22}&a_{23}&b_{23} \\ a_{31}&b_{31}&a_{32}&b_{32}&a_{33}&b_{33} \\ a_{41}&b_{41}&a_{42}&b_{42}&a_{43}&b_{43} \\ a_{51}&b_{51}&a_{52}&b_{52}&a_{53}&b_{54} \\ a_{61}&b_{61}&a_{62}&b_{62}&a_{63}&b_{63} \\ a_{71}&b_{71}&a_{72}&b_{72}&a_{73}&b_{73} \\ a_{81}&b_{81}&a_{82}&b_{82}&a_{83}&b_{83} \end{pmatrix}$ into matrix $\mathbf B = \begin{pmatrix} a_{83}&-b_{83}&a_{82}&-b_{82}&a_{81}&-b_{81} \\ a_{73}&-b_{73}&a_{72}&-b_{72}&a_{71}&-b_{71}\\ a_{63}&-b_{63}&a_{62}&-b_{62}&a_{61}&-b_{61} \\ a_{53}&-b_{53}&a_{52}&-b_{52}&a_{51}&-b_{51} \\ a_{43}&-b_{43}&a_{42}&-b_{42}&a_{41}&-b_{41}\\ a_{33}&-b_{33}&a_{32}&-b_{32}&a_{31}&-b_{31} \\ a_{23}&-b_{23}&a_{22}&-b_{22}&a_{21}&-b_{21} \\ a_{13}&-b_{13}&a_{12}&-b_{12}&a_{11}&-b_{11} \end{pmatrix}$.
In fact, to do this, I can multiply matrix $\mathbf A$ by the anti-diagonal identity matrix on the left : $\begin{pmatrix} 0&0&0&0&0&0&0&1\\ 0&0&0&0&0&0&1&0 \\ 0&0&0&0&0&1&0&0 \\ 0&0&0&0&1&0&0&0 \\ 0&0&0&1&0&0&0&0 \\ 0&0&1&0&0&0&0&0 \\ 0&1&0&0&0&0&0&0 \\ 1&0&0&0&0&0&0&0 \end{pmatrix}$, and multiply on the right by $\begin{pmatrix} 0&0&0&0&0&0&1&0\\ 0&0&0&0&0&0&0&-1 \\ 0&0&0&0&1&0&0&0 \\ 0&0&0&0&0&-1&0&0 \\ 0&0&1&0&0&0&0&0 \\ 0&0&0&-1&0&0&0&0 \\ 1&0&0&0&0&0&0&0 \\ 0&-1&0&0&0&0&0&0\end{pmatrix}$ to obtain matrix $\mathbf B$.
But I can't figure out how to generalize this to $\{n\times m,\ n>8,\ m>6\}$ size matrices, and most importantly how to make it efficient in terms of time consumption... Does anyone have any ideas?
Thanks in advance.
Mathematica expression of A :
A = Table[Sequence @@ {a[i, j], b[i, j]}, {i, 8}, {j, 3}]
Additional note : What I intend to do is to :
Turn the matrix upside down
Treat block matrices by sets of two columns and in each set
- Change the sign of the second column of each set
- Finally flipping the matrix as in a mirror image (but keeping the sets of two columns in order : for the example above $\rightarrow$ columns 1 & 2 become 4 & 6; columns 2 & 3 stay in their place (only in this example); columns 4 & 6 become 1 & 2.