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 `rdist` with `compact=TRUE`. `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

`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
```

[Package fields version 8.4-1 Index]