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


R rsparsematrix 随机稀疏矩阵


R语言 rsparsematrix 位于 Matrix 包(package)。

说明

有效地生成随机稀疏矩阵。默认情况下具有舍入高斯非零条目,并且 rand.x = NULL 生成随机模式矩阵,即继承自 nsparseMatrix

用法

rsparsematrix(nrow, ncol, density, nnz = round(density * maxE),
              symmetric = FALSE,
              rand.x = function(n) signif(rnorm(n), 2), ...)

参数

nrow , ncol

行数和列数,即矩阵维度 ( dim )。

density

中的可选数字,密度是所有矩阵条目中非零条目的比例。如果指定,则确定 nnz 的默认值,否则需要指定 nnz

nnz

非零条目的数量,对于稀疏矩阵通常比 nrow*ncol 小得多。如果density 不是,则必须指定。

symmetric

逻辑指示结果是否应该是类 symmetricMatrix 的矩阵。请注意,在对称情况下,nnz 表示矩阵上部(或下部)部分(包括对角线)的非零条目数。

rand.x

NULLx 槽的随机数生成器,function,以便 rand.x(n) 生成长度为 n 的数值向量。典型示例是 rand.x = rnormrand.x = runif ;默认值非常适合教学目的。

...

可选地将更多参数传递给 sparseMatrix() ,特别是 repr

细节

该算法首先通过一维索引对 “encoded” 进行无放回采样,如果不是 symmetric sample.int(nrow*ncol, nnz) ,则 — 如果 rand.x 不是 NULL — 获取 x <- rand.x(nnz) 并调用 sparseMatrix(i=i, j=j, x=x, ..) 。当 rand.x=NULL 时,sparseMatrix(i=i, j=j, ..) 将返回一个模式矩阵(即继承自 nsparseMatrix )。

a sparseMatrix ,例如维度 (nrow, ncol) 的 M ,即,如果 symmetric 不为 true,则使用 dim(M) == c(nrow, ncol) ,而 nzM <- nnzero(M) 满足 nzM <= nnz ,并且通常满足 nzM == nnz

例子


set.seed(17)# to be reproducible
M <- rsparsematrix(8, 12, nnz = 30) # small example, not very sparse
M
M1 <- rsparsematrix(1000, 20,  nnz = 123,  rand.x = runif)
summary(M1)

## a random *symmetric* Matrix
(S9 <- rsparsematrix(9, 9, nnz = 10, symmetric=TRUE)) # dsCMatrix
nnzero(S9)# ~ 20: as 'nnz' only counts one "triangle"

## a random patter*n* aka boolean Matrix (no 'x' slot):
(n7 <- rsparsematrix(5, 12, nnz = 10, rand.x = NULL))

## a [T]riplet representation sparseMatrix:
T2 <- rsparsematrix(40, 12, nnz = 99, repr = "T")
head(T2)

作者

Martin Maechler

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Random Sparse Matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。