R/sym_mtx.R

Defines functions sym_mtx

sym_mtx <- function(lower_tri, diag = TRUE, dimnames = NULL) {
  n <- 0.5 * (sqrt(1 + 8 * length(lower_tri)) - 1)
  if (diag) {
    mtx <- matrix(nrow = n, ncol = n, dimnames = dimnames)
    mtx[lower.tri(mtx, diag = TRUE)] <- lower_tri
  } else {
    n <- n + 1
    mtx <- matrix(1, nrow = n, ncol = n, dimnames = dimnames)
    mtx[lower.tri(mtx, diag = FALSE)] <- lower_tri
  }
  mtx[upper.tri(mtx, diag = FALSE)] <- mtx[lower.tri(mtx, diag = FALSE)]
  mtx
}
ricky-kotecha/rkHMM documentation built on May 4, 2020, 12:08 a.m.