       Re: check if a square matrix is diagonal

• To: mathgroup at smc.vnet.net
• Subject: [mg115305] Re: check if a square matrix is diagonal
• From: Thomas Dowling <thomasgdowling at gmail.com>
• Date: Fri, 7 Jan 2011 04:08:57 -0500 (EST)

```Hello,

checkIfDiagonalMatrix[m_]:=Module[{d,mtemp},d=Dimensions[m];
mtemp=DiagonalMatrix[Diagonal[m]]-m;
If[mtemp==Array[0 &,Dimensions[m]],Print["True"],Print["False"]]]

or maybe...

checkIfDiagonalMatrix2[m_]:=Module[{d,mtemp},d=Dimensions[m];
mtemp=ReplacePart[m,{i_,i_}:>0];
If[mtemp==Array[0 &,Dimensions[m]],Print["True"],Print["False"]]]

For example:

mat=Array[Subscript[a,##]&,{4,4}];
diagmat=DiagonalMatrix[Diagonal@mat];

checkIfDiagonalMatrix[diagmat]

checkIfDiagonalMatrix2[mat]

You may be interested in the following link to an old thread (I almost wrote
'friend'!):

http://forums.wolfram.com/mathgroup/archive/1995/Aug/msg00153.html

Tom Dowling

On Thu, Jan 6, 2011 at 7:06 AM, benyaya <xiaochu at gmail.com> wrote:

> What I try to do is extract the diagonal, subtract if from the matrix,
> then compare the new matrix with 0.
> My code doesn't work out though, can anyone help? thanks a lot.
>
> checkIfDiagonalMatrix[m_] = Module[{d, mtemp},
>  d = Dimensions[m];
>  mtemp = DiagonalMatrix[Diagonal[m]] - m;
>  If[mtemp == Table[Table[0, {i, 1, d}], {i, 1, d}],
>   True,
>   False]
>  ]
>
>

```

• Prev by Date: Extracting pixel values from an image under a polygon (region of interest)
• Next by Date: Solving very large systems of ODEs with NDSolve
• Previous by thread: Re: check if a square matrix is diagonal
• Next by thread: Re: check if a square matrix is diagonal