Matrix-class | R Documentation |
The Matrix
class is a class contained by all actual
classes in the Matrix package. It is a “virtual” class.
Dim
an integer vector of length 2 giving the dimensions of the matrix.
Dimnames
a list of length 2. Each element must
be NULL
or a character vector of length equal to the
corresponding element of Dim
.
signature(x = "Matrix", logarithm = "missing")
: and
signature(x = "Matrix", logarithm = "logical")
:
compute the (\log
) determinant of x
. The method
chosen depends on the actual Matrix class of x
. Note that
det
also works for all our matrices, calling the
appropriate determinant()
method. The Matrix::det
is an exact copy of base::det
, but in the correct
namespace, and hence calling the S4-aware version of
determinant()
.).
signature(x = "Matrix")
: As diff()
for traditional matrices, i.e., applying diff()
to each
column.
signature(x = "Matrix")
: extract matrix dimensions
dim
.
signature(x = "Matrix", value = "ANY")
: where
value
is integer of length 2. Allows to reshape
Matrix objects, but only when prod(value) == prod(dim(x))
.
signature(x = "Matrix")
: extract
dimnames
.
signature(x = "Matrix", value = "list")
: set
the dimnames
to a list
of length 2, see
dimnames<-
.
signature(x = "Matrix")
: simply defined as
prod(dim(x))
(and hence of mode "double"
).
signature(object = "Matrix")
: show
method for print
ing. For printing sparse
matrices, see printSpMatrix
.
signature(x = "Matrix")
: typically used for
"dMatrix"
: round()
matrix entries
such that (relatively) very small entries become zero exactly.
signature(object = "Matrix")
: draws an
image
of the matrix entries, using
levelplot()
from package lattice.
signature(object = "Matrix")
: return only the
“head”, i.e., the first few rows.
signature(object = "Matrix")
: return only the
“tail”, i.e., the last few rows of the respective matrix.
signature(x = "Matrix")
: the same as
as(x, "matrix")
; see also the note below.
signature(x = "Matrix", mode = "missing")
:
as.vector(m)
should be identical to as.vector(as(m,
"matrix"))
, implemented more efficiently for some subclasses.
etc, similarly.
signature(from = "ANY", to = "Matrix")
: This
relies on a correct as.matrix()
method for from
.
There are many more methods that (conceptually should) work for all
"Matrix"
objects, e.g., colSums
,
rowMeans
. Even base functions may work
automagically (if they first call as.matrix()
on their
principal argument), e.g., apply
, eigen
,
svd
or kappa
all do work via coercion to a
“traditional” (dense) matrix
.
Loading the Matrix
namespace “overloads”
as.matrix
and as.array
in the base
namespace by the equivalent of function(x) as(x, "matrix")
.
Consequently, as.matrix(m)
or as.array(m)
will properly
work when m
inherits from the "Matrix"
class —
also for functions in package base and other packages.
E.g., apply
or outer
can therefore be applied
to "Matrix"
matrices.
Douglas Bates bates@stat.wisc.edu and Martin Maechler
the classes dgeMatrix
,
dgCMatrix
, and function
Matrix
for construction (and examples).
Methods, e.g., for kronecker
.
slotNames("Matrix")
cl <- getClass("Matrix")
names(cl@subclasses) # more than 40 ..
showClass("Matrix")#> output with slots and all subclasses
(M <- Matrix(c(0,1,0,0), 6, 4))
dim(M)
diag(M)
cm <- M[1:4,] + 10*Diagonal(4)
diff(M)
## can reshape it even :
dim(M) <- c(2, 12)
M
stopifnot(identical(M, Matrix(c(0,1,0,0), 2,12)),
all.equal(det(cm),
determinant(as(cm,"matrix"), log=FALSE)$modulus,
check.attributes=FALSE))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.