[R] symmetric matrix on both diagonals

Petr Savicky savicky at cs.cas.cz
Fri Apr 20 13:05:23 CEST 2012


On Fri, Apr 20, 2012 at 03:03:40AM -0700, juliane0212 wrote:
> 
> I'm  having some problems computing a matrix being symmetric on both
> diagonals.
> 
> Does anyone know a way to get from this matrix
> 
> 
>  M <- matrix(c(1,0,0,0,2,7,0,0,3,4,0,0,6,0,0,0), ncol=4)
>                
> to this one
>                
>                M_final <- matrix(c(1,2,3,6,2,7,4,3,3,4,7,2,6,3,2,1), ncol=4)

Hi.

Try the following.

  M[row(M) > col(M)] <- t(M)[row(M) > col(M)]
  n <- nrow(M)
  M[row(M) + col(M) > n + 1] <- M[n:1, n:1][row(M) + col(M) > n + 1]
  all(M == M_final)

  [1] TRUE

Hope this helps.

Petr Savicky.



More information about the R-help mailing list