Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: How to construct symmetric matrix from just a one

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110375] Re: How to construct symmetric matrix from just a one
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 16 Jun 2010 05:36:23 -0400 (EDT)

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