Construct a Matrix of a class that inherits from
Matrix(data=NA, nrow=1, ncol=1, byrow=FALSE, dimnames=NULL, sparse = NULL, doDiag = TRUE, forceCheck = FALSE)
- an optional numeric data vector or matrix.
datais not a matrix, the desired number of rows
datais not a matrix, the desired number of columns
- logical. If
FALSE(the default) the matrix is filled by columns, otherwise the matrix is filled by rows.
dimnamesattribute for the matrix: a
listof two character components. They are set if not
NULL(as per default).
- 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 a
doDiag=FALSEas well, see the first examples.
- only when
sparse = FALSE, logical indicating if a
diagonalMatrixobject should be considered (default). Otherwise, in such a case, a dense (symmetric) matrix will be returned.
- logical indicating if the checks for structure should even happen when
datais already a
If either of
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.
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(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.2-3. License: GPL (>= 2)