Why does Transpose[m, {1, 1}] give the diagonal of m?
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg1859] Why does Transpose[m, {1, 1}] give the diagonal of m?
- From: drc at gate.net (David Cabana)
- Date: Wed, 9 Aug 1995 22:37:45 -0400
In a recent article in the thread Re: [mg1741] RealDigits, Roman Maeder explains one way to test whether a matrix is diagonal: >even faster and certainly simpler: >dQ[m_?MatrixQ] /; SameQ @@ Dimensions[m] := > m == DiagonalMatrix[Transpose[m, {1, 1}]] >(note: Transpose[m, {1, 1}] returns the list of diagonal elements.) An elegant test. My question: why does Transpose[m, {1, 1}] return the list of diagonal elements? Looking under Transpose in Wolfram's Mathematica Reference Guide (an appendix to Mathematica, 2nd ed.), I find: >Transpose[list, {n1,n2, ...}] transposes list so that the kth level >in list is the nkth level in the result. I expected Depth[Transpose[list, {n1,n2, ...}]] to be the same as Depth[list]. I expected Transpose to swap levels; I did not expect it to throw any away. Evidently I am laboring under some misconception. Can someone explain what is going on? -- David Cabana drc at gate.net