Diagonal {Matrix} | R Documentation |
Create a diagonal matrix object, i.e., an object inheriting from
diagonalMatrix
.
Diagonal(n, x = NULL) .symDiagonal(n, x = rep.int(1,n), uplo = "U")
n |
integer specifying the dimension of the (square) matrix. If
missing, length(x) is used. |
x |
numeric or logical; if missing, a unit diagonal n x n matrix is created. |
uplo |
for .symDiagonal , the resulting sparse
symmetricMatrix will have slot uplo set
from this argument, either "U" or "L" . Only rarely
will it make sense to change this from the default. |
Diagonal()
returns an object of class
ddiMatrix
or ldiMatrix
(with “superclass” diagonalMatrix
).
.symDiagonal()
returns an object of class
dsCMatrix
or lsCMatrix
,
i.e., a sparse symmetric matrix. This can be
more efficient than Diagonal(n)
when the result is combined
with further symmetric (sparse) matrices, however not for
matrix multiplications where Diagonal()
is clearly preferred.
the generic function diag
for extraction
of the diagonal from a matrix works for all “Matrices”.
bandSparse
constructs a banded sparse matrix from
its non-zero sub-/super - diagonals.
Matrix
for general matrix construction;
further, class diagonalMatrix
.
Diagonal(3) Diagonal(x = 10^(3:1)) Diagonal(x = (1:4) >= 2)#-> "ldiMatrix" ## Use Diagonal() + kronecker() for "repeated-block" matrices: M1 <- Matrix(0+0:5, 2,3) (M <- kronecker(Diagonal(3), M1)) (S <- crossprod(Matrix(rbinom(60, size=1, prob=0.1), 10,6))) (SI <- S + 10*.symDiagonal(6)) # sparse symmetric still stopifnot(is(SI, "dsCMatrix"))