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