| Matrix-class {Matrix} | R Documentation |
The Matrix class is a class contained by all actual
classes in the Matrix package. It is a “virtual” class.
Common to all matrix objects in the package:
Dim:"integer" - the dimensions
of the matrix - must be an integer vector with exactly two
non-negative values.Dimnames:character vector length
equal the corresponding Dim element.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 printing.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.
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)
diff(M)
## can reshape it even :
dim(M) <- c(2, 12)
M
stopifnot(identical(M, Matrix(c(0,1,0,0), 2,12)))