Learn R Programming

dclone (version 1.2-0)

make.symmetric: Make a square matrix symmetric by averaging.

Description

Matrix symmetry might depend on numerical precision issues. There is a bug in JAGS related to this issue for multivariate normal nodes. This simple function can fix the issue.

Usage

make.symmetric(x)

Arguments

x
A square matrix.

Value

  • A symmetric square matrix.

encoding

UTF-8

Details

The function takes the average of (x[i, j] + x[j, i]) / 2 for each off diagonal cells.

Examples

Run this code
x <- as.matrix(as.dist(matrix(1:25, 5, 5)))
diag(x) <- 100
x[lower.tri(x)] <- x[lower.tri(x)] - 0.1
x[upper.tri(x)] <- x[upper.tri(x)] + 0.1
x
make.symmetric(x)

Run the code above in your browser using DataLab