
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)
a square matrix.
a vector.
a logical switch indicating if the diagonal entries must be included.
A vector for vechMat
, a symmetric matrix for xnpdMat
.
See functions vech
and xpnd
in package MCMCpack.
# NOT RUN {
# 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))
# }
Run the code above in your browser using DataLab