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/).

### See Also

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