Symmetric Part and Skew(symmetric) Part of a Matrix
Symmetric Part and Skew(symmetric) Part of a Matrix
symmpart(x) computes the symmetric part (x + t(x))/2 and skewpart(x) the skew symmetric part (x - t(x))/2 of a square matrix x, more efficiently for specific Matrix classes.
Note that x == symmpart(x) + skewpart(x) for all square matrices -- apart from extraneous NA values in the RHS.
methods
symmpart(x)skewpart(x)
Arguments
x: a square matrix; either traditional of class "matrix", or typically, inheriting from the Matrix class.
Details
These are generic functions with several methods for different matrix classes, use e.g., showMethods(symmpart) to see them.
If the row and column names differ, the result will use the column names unless they are (partly) NULL where the row names are non-NULL (see also the examples).
Returns
symmpart(x) returns a symmetric matrix, inheriting from symmetricMatrix
or diagonalMatrix if x
inherits from Matrix.
skewpart(x) returns a skew-symmetric matrix, inheriting from generalMatrix, symmetricMatrix or diagonalMatrix if x
inherits from Matrix.
See Also
isSymmetric.
Examples
m <- Matrix(1:4,2,2)symmpart(m)skewpart(m)stopifnot(all(m == symmpart(m)+ skewpart(m)))dn <- dimnames(m)<- list(row = c("r1","r2"), col = c("var.1","var.2"))stopifnot(all(m == symmpart(m)+ skewpart(m)))colnames(m)<-NULLstopifnot(all(m == symmpart(m)+ skewpart(m)))dimnames(m)<- unname(dn)stopifnot(all(m == symmpart(m)+ skewpart(m)))## investigate the current methods:showMethods(skewpart, include =TRUE)