compactToMat {fields} | R Documentation |
Convert Matrix from Compact Vector to Standard Form
Description
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
.
Usage
compactToMat(compactMat, diagVal=0, lower.tri=FALSE, upper.tri=TRUE)
Arguments
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 |
Value
The standard form matrix represented by the input compact matrix
Author(s)
John Paige
See Also
rdist
, link{dist}
Examples
################
#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