Matrix
位於 Matrix
包(package)。 說明
構造繼承自 Matrix
的類的 Matrix。
用法
Matrix(data=NA, nrow=1, ncol=1, byrow=FALSE, dimnames=NULL,
sparse = NULL, doDiag = TRUE, forceCheck = FALSE)
參數
data |
可選的數值數據向量或矩陣。 |
nrow |
當 |
ncol |
當 |
byrow |
合乎邏輯的。如果 |
dimnames |
|
sparse |
邏輯或 |
doDiag |
邏輯指示當結果矩陣是對角線(數學上)時是否應返回 否則,如果 |
forceCheck |
邏輯指示當 |
細節
如果nrow
或ncol
未給出,則嘗試從data
和其他參數的長度推斷它。此外,Matrix()
努力保持 logical
矩陣的邏輯性,即從類 lMatrix
繼承,並確定特殊結構的矩陣,例如對稱、三角形或對角矩陣。請注意,對稱矩陣還需要對稱 dimnames
,例如,通過指定 dimnames = list(NULL,NULL)
,請參閱示例。
大多數時候,該函數通過傳統(完整)matrix
工作。但是, Matrix(0, nrow,ncol)
直接構造 “empty” sparseMatrix ,就像 Matrix(FALSE, *)
一樣。
盡管有時可以將未分類矩陣(使用 matrix
創建)與 "Matrix"
類矩陣混合,但始終使用精心構造的 "Matrix"
類矩陣要安全得多。
值
返回繼承自 "Matrix"
的類的矩陣。僅當 data
不是 matrix
並且尚未從類 Matrix
繼承時,才會使用參數 nrow
、 ncol
和 byrow
。
例子
Matrix(0, 3, 2) # 3 by 2 matrix of zeros -> sparse
Matrix(0, 3, 2, sparse=FALSE)# -> 'dense'
## 4 cases - 3 different results :
Matrix(0, 2, 2) # diagonal !
Matrix(0, 2, 2, sparse=FALSE)# (ditto)
Matrix(0, 2, 2, doDiag=FALSE)# -> sparse symm. "dsCMatrix"
Matrix(0, 2, 2, sparse=FALSE, doDiag=FALSE)# -> dense symm. "dsyMatrix"
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) # (ditto)
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")# "lgCMatrix"
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 'diag = "U"' and 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
forceSymmetric(A) # also symmetric, w/ symm. dimnames
stopifnot(is(As, "symmetricMatrix"),
is(Matrix(0, 3,3), "sparseMatrix"),
is(Matrix(FALSE, 1,1), "sparseMatrix"))
也可以看看
類 Matrix
、 symmetricMatrix
、 triangularMatrix
和 diagonalMatrix
;此外,matrix
。
可以構造特殊矩陣,例如通過 sparseMatrix
(稀疏)、bdiag
(block-diagonal)、bandSparse
(帶狀稀疏)或 Diagonal
。
相關用法
- R MatrixClass 類的矩陣(超級)類
- R MatrixFactorization-class 矩陣分解的虛擬類“MatrixFactorization”
- R Matrix-notyet 虛擬課堂尚未真正實施和使用
- R Matrix-deprecated 包矩陣中已棄用的函數
- R Matrix-class 矩陣的虛擬類“矩陣”
- R Matrix-defunct 包矩陣中的失效函數
- R dtrMatrix-class 三角形稠密數值矩陣
- R facmul-methods 乘以矩陣因式分解的因數
- R solve-methods 函數求解矩陣包中的方法
- R updown-methods 更新和降級稀疏 Cholesky 分解
- R bdiag 構建分塊對角矩陣
- R printSpMatrix 靈活格式化和打印稀疏矩陣
- R symmetricMatrix-class 包矩陣中對稱矩陣的虛擬類
- R all.equal-methods 函數 all.equal() 的矩陣封裝方法
- R boolmatmult-methods 布爾算術矩陣乘積:%&% 和方法
- R ltrMatrix-class 三角密集邏輯矩陣
- R Hilbert 生成希爾伯特矩陣
- R nearPD 最近正定矩陣
- R lsyMatrix-class 對稱密集邏輯矩陣
- R CHMfactor-class 稀疏 Cholesky 分解
- R symmpart-methods 矩陣的對稱部分和偏斜(對稱)部分
- R sparseMatrix 從非零項構建一般稀疏矩陣
- R dgCMatrix-class 壓縮、稀疏、麵向列的數值矩陣
- R Cholesky-methods Cholesky 分解方法
- R Subassign-methods “[<-”的方法 - 分配給“矩陣”的子集
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Construct a Classed Matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。