当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。