# compactToMat: Convert Matrix from Compact Vector to Standard Form In fields: Tools for Spatial Data

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

 `1` ```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}`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36``` ```################ #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 ```