mat.convert {GeneTS} R Documentation

## Convert Symmetric Matrix to Vector and Back

### Description

`sm2vec` takes a symmetric matrix and puts the lower triagonal entries into a vector (cf. `lower.tri`).

`sm.indexes` gives the corresponding x-y-indexes for each entry in the vector produced by `sm2vec`.

`vec2sm` reverses the operation by `sm2vec` and turns the vector back in a symmetric matrix. Note that if `diag=FALSE` the diagonal of the resulting matrix will consist of NAs. If `order` is given then the input vector `vec` is first sorted accordingly.

### Usage

```sm2vec(m, diag = FALSE)
sm.indexes(m, diag = FALSE)
vec2sm(vec, diag = FALSE, order = NULL)
```

### Arguments

 `m` symmetric matrix `diag` logical. Should the diagonal be included? `vec` vector of unique elements from a symmetric matrix `order` order of the entries in `vec`

### Value

A vector (`sm2vec`), a two-column matrix with indexes (`sm.indexes`), or a symmetric matrix (`vec2sm`).

### Author(s)

Korbinian Strimmer (http://www.stat.uni-muenchen.de/~strimmer/).

`lower.tri`.

### Examples

```# load GeneTS library
library(GeneTS)

# covariance matrix
m.cov <- rbind(
c(3,1,1,0),
c(1,3,0,1),
c(1,0,2,0),
c(0,1,0,2)
)
m.cov

# convert into vector (including diagonals
v <- sm2vec(m.cov, diag=TRUE)
v.idx <- sm.indexes(m.cov, diag=TRUE)
v
v.idx

# put back to symmetric matrix
vec2sm(v, diag=TRUE)

# vector not in the original order
sv <- sort(v)
sv
ov <- order(v)
ov
vec2sm(sv, diag=TRUE, order=ov)
```

[Package GeneTS version 2.3 Index]