Matrix {Matrix}
Description
Construct a Matrix of a class that inherits from Matrix.
Usage
Matrix(data=NA, nrow=1, ncol=1, byrow=FALSE, dimnames=NULL,
sparse = NULL, doDiag = TRUE, forceCheck = FALSE)
Arguments
- data
- an optional numeric data vector or matrix.
- nrow
- when
datais not a matrix, the desired number of rows - ncol
- when
datais not a matrix, the desired number of columns - byrow
- logical. If
FALSE(the default) the matrix is filled by columns, otherwise the matrix is filled by rows. - dimnames
- a
dimnamesattribute for the matrix: alistof two character components. They are set if notNULL(as per default). - sparse
- logical or
NULL, specifying if the result should be sparse or not. By default, it is made sparse when more than half of the entries are 0.Note that when the resulting matrix is diagonal (“mathematically”),
sparse=FALSEresults in adiagonalMatrix, unlessdoDiag=FALSEas well, see the first examples. - doDiag
- only when
sparse = FALSE, logical indicating if adiagonalMatrixobject should be considered (default). Otherwise, in such a case, a dense (symmetric) matrix will be returned. - forceCheck
- logical indicating if the checks for structure should even happen when
datais already a"Matrix"object.
Details
If either of nrow or ncol is not given, an attempt is made to infer it from the length of data and the other parameter. Further, Matrix() makes efforts to keep logical matrices logical, i.e., inheriting from class lMatrix, and to determine specially structured matrices such as symmetric, triangular or diagonal ones. Note that a symmetric matrix also needs symmetric dimnames, e.g., by specifying dimnames = list(NULL,NULL), see the examples.
Most of the time, the function works via a traditional (full) matrix. However, Matrix(0, nrow,ncol) directly constructs an “empty” sparseMatrix, as does Matrix(FALSE, *).
Although it is sometime possible to mix unclassed matrices (created with matrix) with ones of class "Matrix", it is much safer to always use carefully constructed ones of class "Matrix".
Values
Returns matrix of a class that inherits from "Matrix". Only if data is not a matrix and does not already inherit from class Matrix are the arguments nrow, ncol and byrow made use of.
See Also
The classes Matrix, symmetricMatrix, triangularMatrix, and diagonalMatrix; further, matrix.
Special matrices can be constructed, e.g., via sparseMatrix (sparse), bdiag (block-diagonal), bandSparse (banded sparse), or Diagonal.
Examples
Matrix(0, 3, 2) # 3 by 2 matrix of zeros -> sparse Matrix(0, 3, 2, sparse=FALSE)# -> 'dense' Matrix(0, 2, 2, sparse=FALSE)# diagonal ! Matrix(0, 2, 2, sparse=FALSE, doDiag=FALSE)# -> dense Matrix(1:6, 3, 2) # a 3 by 2 matrix (+ integer warning) Matrix(1:6 + 1, nrow=3) ## logical ones: Matrix(diag(4) > 0)# -> "ldiMatrix" with diag = "U" Matrix(diag(4) > 0, sparse=TRUE)# -> sparse... Matrix(diag(4) >= 0)# -> "lsyMatrix" (of all 'TRUE') ## triangular l3 <- upper.tri(matrix(,3,3)) (M <- Matrix(l3)) # -> "ltCMatrix" Matrix(! l3)# -> "ltrMatrix" as(l3, "CsparseMatrix") Matrix(1:9, nrow=3, dimnames = list(c("a", "b", "c"), c("A", "B", "C"))) (I3 <- Matrix(diag(3)))# identity, i.e., unit "diagonalMatrix" str(I3) # note the empty 'x' slot (A <- cbind(a=c(2,1), b=1:2))# symmetric *apart* from dimnames Matrix(A) # hence 'dgeMatrix' (As <- Matrix(A, dimnames = list(NULL,NULL)))# -> symmetric stopifnot(is(As, "symmetricMatrix"), is(Matrix(0, 3,3), "sparseMatrix"), is(Matrix(FALSE, 1,1), "sparseMatrix"))
Documentation reproduced from package Matrix, version 1.0-12. License: GPL (>= 2)
