The `dMatrix`

class is a virtual class contained by all actual
classes of numeric matrices in the Matrix package. Similarly,
all the actual classes of logical matrices inherit from the
`lMatrix`

class.

Common to *all* matrix object in the package:

`Dim`

:Object of class

`"integer"`

- the dimensions of the matrix - must be an integer vector with exactly two non-negative values.`Dimnames`

:list of length two; each component containing NULL or a

`character`

vector length equal the corresponding`Dim`

element.

There are (relatively simple) group methods (see, e.g., `Arith`

)

- Arith
`signature(e1 = "dMatrix", e2 = "dMatrix")`

: ...- Arith
`signature(e1 = "dMatrix", e2 = "numeric")`

: ...- Arith
`signature(e1 = "numeric", e2 = "dMatrix")`

: ...- Math
`signature(x = "dMatrix")`

: ...- Math2
`signature(x = "dMatrix", digits = "numeric")`

: this group contains`round()`

and`signif()`

.- Compare
`signature(e1 = "numeric", e2 = "dMatrix")`

: ...- Compare
`signature(e1 = "dMatrix", e2 = "numeric")`

: ...- Compare
`signature(e1 = "dMatrix", e2 = "dMatrix")`

: ...- Summary
`signature(x = "dMatrix")`

: The`"Summary"`

group contains the seven functions`max()`

,`min()`

,`range()`

,`prod()`

,`sum()`

,`any()`

, and`all()`

.

The following methods are also defined for all double matrices:

- coerce
`signature(from = "dMatrix", to = "matrix")`

: ...
%
- expm
`signature(x = "dMatrix")`

: computes the*“Matrix Exponential”*, see`expm`

.- zapsmall
`signature(x = "dMatrix")`

: ...

The following methods are defined for all logical matrices:

- which
`signature(x = "lsparseMatrix")`

and many other subclasses of`"lMatrix"`

: as the base function`which(x, arr.ind)`

returns the indices of the`TRUE`

entries in`x`

; if`arr.ind`

is true, as a 2-column matrix of row and column indices. Since Matrix version 1.2-9, if`useNames`

is true, as by default, with`dimnames`

, the same as`base::which`

.

The nonzero-pattern matrix class `'>nMatrix`

, which
can be used to store non-`NA`

`logical`

matrices even more compactly.

The numeric matrix classes `'>dgeMatrix`

,
`'>dgCMatrix`

, and `'>Matrix`

.

`drop0(x, tol=1e-10)`

is sometimes preferable to (and
more efficient than) `zapsmall(x, digits=10)`

.

```
# NOT RUN {
showClass("dMatrix")
set.seed(101)
round(Matrix(rnorm(28), 4,7), 2)
M <- Matrix(rlnorm(56, sd=10), 4,14)
(M. <- zapsmall(M))
table(as.logical(M. == 0))
# }
```

Run the code above in your browser using DataLab