Convert Matrix from Compact Vector to Standard Form
compactToMat
transforms a matrix from compact, vector form to
a standard matrix. Only symmetric matrices can be stored in this
form, since a compact matrix is stored as a vector with elements
representing the upper triangle of the matrix. This function assumes
the vector does not contain diagonal elements of the matrix.
An example of a matrix stored in compact form is any matrix
generated from the rdist
function with compact=TRUE
.
compactToMat(compactMat, diagVal=0, lower.tri=FALSE, upper.tri=TRUE)
compactMat |
A symmetric matrix stored as a vector containing elements for the lower-triangular
portion of the true matrix (and none of the diagonal elements), as returned by
|
diagVal |
A number to put in the diagonal entries of the output matrix. |
lower.tri |
Whether or not to fill in the upper triangle of the output matrix |
upper.tri |
Whether or not to fill in the lower triangle of the output matrix |
The standard form matrix represented by the input compact matrix
John Paige
rdist
, link{dist}
################ #Calculate distance matrix from compact form: ################ #make a distance matrix distOut = rdist(1:5, compact=TRUE) print(distOut) #note that distOut is in compact form: print(c(distOut)) #convert to standard matrix form: distMat = compactToMat(distOut) ################ #fast computation of covariance matrix: ################ #generate 5 random points on [0,1]x[0,1] square x = matrix(runif(10), nrow=5) #get compact distance matrix distOut = rdist(x, compact=TRUE) #evaluate Exponential covariance with range=1. Note that #Covariance function is only evaluated over upper triangle #so time is saved. diagVal = Exponential(0, range=1) compactCovMat = Exponential(distOut, range=1) upperCovMat = compactToMat(compactCovMat, diagVal) lowerCovMat = compactToMat(compactCovMat, diagVal, lower.tri=TRUE, upper.tri=FALSE) fullCovMat = compactToMat(compactCovMat, diagVal, lower.tri=TRUE, upper.tri=TRUE) compactCovMat lowerCovMat upperCovMat fullCovMat
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.