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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。