7
$\begingroup$

I need help with writing the mathematica code to reflect the entries of a square matrix about its anti-diagonal. I know to do it about the main diagonal using Transpose.

What should be the precise code?

Thanks.

$\endgroup$
  • 4
    $\begingroup$ Try Transpose@Reverse[m, {1, 2}]. $\endgroup$ – Szabolcs Dec 17 '14 at 16:38
  • 2
    $\begingroup$ Transpose@m[[-1 ;; 1 ;; -1, -1 ;; 1 ;; -1]] is faster for big numerical arrays because of the perforamce bug in Reverse $\endgroup$ – ybeltukov Dec 17 '14 at 20:19
5
$\begingroup$
mA = Array[a, {4, 4}]

{{a[1, 1], a[1, 2], a[1, 3], a[1, 4]},
{a[2, 1], a[2, 2], a[2, 3], a[2, 4]},
{a[3, 1], a[3, 2], a[3, 3], a[3, 4]},
{a[4, 1], a[4, 2], a[4, 3], a[4, 4]}}

mB = Reverse /@ (Transpose[Reverse /@ mA])

{{a[4, 4], a[3, 4], a[2, 4], a[1, 4]},
{a[4, 3], a[3, 3], a[2, 3], a[1, 3]},
{a[4, 2], a[3, 2], a[2, 2], a[1, 2]},
{a[4, 1], a[3, 1], a[2, 1], a[1, 1]}}

$\endgroup$
1
$\begingroup$
rF = With[{m = #, dim = Length@#}, Array[m[[dim + 1 - #2, dim + 1 - #1]] &, {dim, dim}]] &;

mA = Array[a, {4, 4}];
Row[MatrixForm /@ {mA, rF@mA}]

$\left( \begin{array}{cccc} a[1,1] & a[1,2] & a[1,3] & a[1,4] \\ a[2,1] & a[2,2] & a[2,3) & a[2,4] \\ a[3,1] & a[3,2] & a[3,3) & a[3,4] \\ a[4,1] & a[4,2] & a[4,3) & a[4,4] \\ \end{array} \right)\left( \begin{array}{cccc} a[4,4]& a[3,4]& a[2,4]& a[1,4]\\ a[4,3]& a[3,3]& a[2,3]& a[1,3]\\ a[4,2]& a[3,2]& a[2,2]& a[1,2]\\ a[4,1]& a[3,1]& a[2,1]& a[1,1]\\ \end{array} \right)$

aA = RandomInteger[9, {5, 5}];
Row[MatrixForm /@ {aA, rF@aA}]

$ \left( \begin{array}{ccccc} 3 & 6 & 4 & 0 & 9 \\ 5 & 3 & 3 & 4 & 1 \\ 3 & 7 & 4 & 8 & 2 \\ 1 & 9 & 7 & 7 & 2 \\ 0 & 4 & 1 & 8 & 2 \\ \end{array} \right)\left( \begin{array}{ccccc} 2 & 2 & 2 & 1 & 9 \\ 8 & 7 & 8 & 4 & 0 \\ 1 & 7 & 4 & 3 & 4 \\ 4 & 9 & 7 & 3 & 6 \\ 0 & 1 & 3 & 5 & 3 \\ \end{array} \right) $

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.