Skip to contents

Create a Symmetric Matrix from a Vector

Source: R/symMat.R
symMat.Rd

Creates a square symmetric matrix from a vector.

Usage

symMat(x, diag = TRUE, byrow = FALSE, names = FALSE)

Arguments

x

A numeric vector used to fill the upper or lower triangle of the matrix.

diag

Logical. If TRUE (the default), the diagonals of the created matrix are replaced by elements of x; otherwise, the diagonals of the created matrix are replaced by "1".

byrow

Logical. If FALSE (the default), the created matrix is filled by columns; otherwise, the matrix is filled by rows.

names

Either a logical or a character vector of names for the rows and columns of the matrix. If FALSE, no names are assigned; if TRUE, rows and columns are named X1, X2, ... .

Value

A symmetric square matrix based on column major ordering of the elements in x.

Author

Originally from metaSEM::vec2symMat, Mike W.-L. Cheung <mikewlcheung@nus.edu.sg>; modified by Michael Friendly

Examples

symMat(1:6)
#> [,1] [,2] [,3]
#> [1,] 1 2 3
#> [2,] 2 4 5
#> [3,] 3 5 6
symMat(1:6, byrow=TRUE)
#> [,1] [,2] [,3]
#> [1,] 1 2 4
#> [2,] 2 3 5
#> [3,] 4 5 6
symMat(5:0, diag=FALSE)
#> [,1] [,2] [,3] [,4]
#> [1,] 1 5 4 3
#> [2,] 5 1 2 1
#> [3,] 4 2 1 0
#> [4,] 3 1 0 1

AltStyle によって変換されたページ (->オリジナル) /