vechMat function

Vectorization and Expansion of Symmetric Matrices

Vectorization and Expansion of Symmetric Matrices

The function vechMat transforms a symmetric matrix in a vector containing its lower triangular elements, taken by column. The function xpndMat reverses this transformation.

vechMat(mat, diag=TRUE) xpndMat(vech)

Arguments

  • mat: a square matrix.
  • vech: a vector.
  • diag: a logical switch indicating if the diagonal entries must be included.

Returns

A vector for vechMat, a symmetric matrix for xnpdMat.

Author(s)

Antonio Gasparrini <antonio.gasparrini@lshtm.ac.uk >

See Also

See functions vech and xpnd in package MCMCpack.

Examples

# GENERATE A POSITIVE-DEFINITE MATRIX, VECTORIZE IT AND THEN RE-EXPAND (M <- crossprod(matrix(rnorm(9),3))) (v <- vechMat(M)) xpndMat(v) # EXTRACT VECTORIZED S, EXPAND TO A LIST, AND RE-VECTORIZE (S <- as.matrix(berkey98[5:7])) (Slist <- lapply(seq(nrow(S)), function(i) xpndMat(S[i,]))) t(sapply(Slist,vechMat))
  • Maintainer: Antonio Gasparrini
  • License: GPL (>= 2)
  • Last published: 2021-10-16