當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R Matrix-class 矩陣的虛擬類“矩陣”


R語言 Matrix-class 位於 Matrix 包(package)。

說明

Matrix 類是Matrix 包中所有實際類所包含的類。這是一個“virtual” 類。

插槽

Dim

長度為 2 的整數向量,給出矩陣的維度。

Dimnames

長度為 2 的列表。每個元素必須是 NULL 或長度等於 Dim 的相應元素的字符向量。

方法

行列式

signature(x = "Matrix", logarithm = "missing"):和

行列式

signature(x = "Matrix", logarithm = "logical") :計算 x 的 ( ) 行列式。選擇的方法取決於 x 的實際 Matrix 類。請注意,det 也適用於我們的所有矩陣,調用適當的 determinant() 方法。 Matrix::detbase::det 的精確副本,但位於正確的命名空間中,因此調用 determinant() 的 S4 感知版本。)。

差異

signature(x = "Matrix") :與傳統矩陣的diff() 一樣,即將diff() 應用於每一列。

dim

signature(x = "Matrix") :提取矩陣維度dim

暗淡<-

signature(x = "Matrix", value = "ANY") :其中 value 是長度為 2 的整數。允許重塑 Matrix 對象,但僅限於 prod(value) == prod(dim(x)) 時。

暗名

signature(x = "Matrix") :提取dimnames

暗名<-

signature(x = "Matrix", value = "list") :將dimnames設置為長度為2的list,參見dimnames<-

長度

signature(x = "Matrix") :簡單地定義為 prod(dim(x)) (因此模式為 "double" )。

展示

signature(object = "Matrix")print ing 的show 方法。有關打印稀疏矩陣的信息,請參閱 printSpMatrix

圖片

signature(object = "Matrix") :使用 lattice 包中的 levelplot() 繪製矩陣條目的 image

signature(object = "Matrix") :僅返回“head”,即前幾行。

尾巴

signature(object = "Matrix") :僅返回“tail”,即相應矩陣的最後幾行。


as.matrix,as.array

signature(x = "Matrix") :與as(x, "matrix") 相同;另請參閱下麵的注釋。

as.vector

signature(x = "Matrix", mode = "missing")as.vector(m) 應該與 as.vector(as(m, "matrix")) 相同,對於某些子類實現更有效。

作為(x,"vector"),作為(x,"numeric")

等等,類似地。

強製

signature(from = "ANY", to = "Matrix") :這依賴於 from 的正確 as.matrix() 方法。

還有更多方法(概念上應該)適用於所有 "Matrix" 對象,例如 colSumsrowMeans 。即使 base 函數也可以自動工作(如果它們首先在其主要參數上調用 as.matrix() ),例如 applyeigensvdkappa 都通過強製到 “traditional” 來工作(密集)matrix

注意

base 命名空間中加載 Matrix 命名空間 “overloads” as.matrixas.array 相當於 function(x) as(x, "matrix") 。因此,當 m 繼承自 "Matrix" 類時,as.matrix(m)as.array(m) 將正常工作 — 也適用於包 base 和其他包中的函數。例如,applyouter 因此可以應用於 "Matrix" 矩陣。

例子

slotNames("Matrix")

cl <- getClass("Matrix")
names(cl@subclasses) # more than 40 ..

showClass("Matrix")#> output with slots and all subclasses

(M <- Matrix(c(0,1,0,0), 6, 4))
dim(M)
diag(M)
cm <- M[1:4,] + 10*Diagonal(4)
diff(M)
## can reshape it even :
dim(M) <- c(2, 12)
M
stopifnot(identical(M, Matrix(c(0,1,0,0), 2,12)),
          all.equal(det(cm),
                    determinant(as(cm,"matrix"), log=FALSE)$modulus,
                    check.attributes=FALSE))

作者

Douglas Bates bates@stat.wisc.edu and Martin Maechler

也可以看看

dgeMatrixdgCMatrix 和函數 Matrix 用於構造(和示例)。

方法,例如 kronecker

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Virtual Class "Matrix" of Matrices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。