band
Extract bands of a matrix
Description
Returns a new matrix formed by extracting the lower triangle (tril
) or the upper triangle (triu
) or a general band relative to the diagonal (band
), and setting other elements to zero. The general forms of these functions include integer arguments to specify how many diagonal bands above or below the main diagonal are not set to zero.
Usage
band(x, k1, k2, ...) tril(x, k = 0, ...) triu(x, k = 0, ...)
Arguments
x | a matrix-like object |
k,k1,k2 | integers specifying the diagonal bands that will not be set to zero. These are given relative to the main diagonal, which is |
... | Optional arguments used by specific methods. (None used at present.) |
Value
An object of an appropriate matrix class. The class of the value of tril
or triu
inherits from triangularMatrix
when appropriate. Note that the result is of class sparseMatrix
only if x
is.
Methods
- x = "CsparseMatrix"
-
method for compressed, sparse, column-oriented matrices.
- x = "TsparseMatrix"
-
method for sparse matrices in triplet format.
- x = "RsparseMatrix"
-
method for compressed, sparse, row-oriented matrices.
- x = "ddenseMatrix"
-
method for dense numeric matrices, including packed numeric matrices.
See Also
bandSparse
for the construction of a banded sparse matrix directly from its non-zero diagonals.
Examples
## A random sparse matrix : set.seed(7) m <- matrix(0, 5, 5) m[sample(length(m), size = 14)] <- rep(1:9, length=14) (mm <- as(m, "CsparseMatrix")) tril(mm) # lower triangle tril(mm, -1) # strict lower triangle triu(mm, 1) # strict upper triangle band(mm, -1, 2) # general band (m5 <- Matrix(rnorm(25), nc = 5)) tril(m5) # lower triangle tril(m5, -1) # strict lower triangle triu(m5, 1) # strict upper triangle band(m5, -1, 2) # general band (m65 <- Matrix(rnorm(30), nc = 5)) # not square triu(m65) # result in not dtrMatrix unless square (sm5 <- crossprod(m65)) # symmetric band(sm5, -1, 1)# symmetric band preserves symmetry property as(band(sm5, -1, 1), "sparseMatrix")# often preferable
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.