MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to construct symmetric matrix from just a one


dragec wrote:
> please help me with simple to apply function that will construct
> symmetric matrix from given just a half matrix with diagonal.
> Eg:
> 
> From:
> 1  0  0  0
> 2  3  0  0
> 4  9  5  0
> 2  2  3  4
> 
> To give:
> 
> 1  2  4  2
> 2  3  9  2
> 4  9  5  3
> 2  2  3  4

Any of these should do the job.

symmetrize1[mat_] := mat + Transpose[mat] -
   DiagonalMatrix[Diagonal[mat]]

symmetrize2[mat_] := With[{n=Length[mat]},
   Table[If[i<j,mat[[j,i]],mat[[i,j]]], {i,n}, {j,n}]]

symmetrize3[mat_] := With[{n=Length[mat]},
   Table[Join[mat[[i,1;;i]],mat[[i+1;;n,i]]], {i,n}]]

Daniel Lichtblau
Wolfram Research



  • Prev by Date: Re: How to construct symmetric matrix from just a one half matrix
  • Next by Date: Re: Simplification question
  • Previous by thread: Re: How to construct symmetric matrix from just a one
  • Next by thread: Re: How to construct symmetric matrix from just a one