forceSymmetric {Matrix} | R Documentation |
Force x
(inheriting from Matrix
class) to
symmetricMatrix
, without a symmetry check
(which is applied for all as(x, "symmetricMatrix")
alikes).
forceSymmetric(x, uplo)
x |
a (classed) square matrix. |
uplo |
optional string, |
a square matrix inheriting from class
symmetricMatrix
.
symmpart
for the symmetric part, or the coercions
as(x, <symmetricMatrix class>)
.
## Hilbert matrix i <- 1:6 h6 <- 1/outer(i - 1L, i, "+") sd <- sqrt(diag(h6)) hh <- t(h6/sd)/sd # theoretically symmetric isSymmetric(hh, tol=0) # FALSE; hence try( as(hh, "symmetricMatrix") ) # fails, but this works fine: H6 <- forceSymmetric(hh) ## result can be pretty surprising: (M <- Matrix(1:36, 6)) forceSymmetric(M) # symmetric, hence very different in lower triangle (tm <- tril(M)) forceSymmetric(tm)