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


R spMatrix 三元組的稀疏矩陣構造函數


R語言 spMatrix 位於 Matrix 包(package)。

說明

用戶友好地從三元組表示構造稀疏矩陣(繼承自類 TsparseMatrix )。

這比 sparseMatrix() 更不靈活,因此有些不推薦使用。

用法

spMatrix(nrow, ncol, i = integer(), j = integer(), x = double())

參數

nrow , ncol

指定所需行數和列數的整數。

i , j

相同長度的整數向量指定矩陣的非零(或非 TRUE )條目的位置。

x

ij 長度相同的原子向量,指定非零條目的值。

三元組形式的稀疏矩陣,作為R對象繼承自兩者TsparseMatrixgeneralMatrix.

矩陣 將具有 M[i[k], j[k]] == x[k] ,對於 ,其中 n = length(i)M[ i', j' ] == 0 對於所有其他對

例子


## simple example
A <- spMatrix(10,20, i = c(1,3:8),
                     j = c(2,9,6:10),
                     x = 7 * (1:7))
A # a "dgTMatrix"
summary(A)
str(A) # note that *internally* 0-based indices (i,j) are used

L <- spMatrix(9, 30, i = rep(1:9, 3), 1:27,
              (1:27) %% 4 != 1)
L # an "lgTMatrix"


## A simplified predecessor of  Matrix'  rsparsematrix() function :

 rSpMatrix <- function(nrow, ncol, nnz,
                       rand.x = function(n) round(rnorm(nnz), 2))
 {
     ## Purpose: random sparse matrix
     ## --------------------------------------------------------------
     ## Arguments: (nrow,ncol): dimension
     ##          nnz  :  number of non-zero entries
     ##         rand.x:  random number generator for 'x' slot
     ## --------------------------------------------------------------
     ## Author: Martin Maechler, Date: 14.-16. May 2007
     stopifnot((nnz <- as.integer(nnz)) >= 0,
               nrow >= 0, ncol >= 0, nnz <= nrow * ncol)
     spMatrix(nrow, ncol,
              i = sample(nrow, nnz, replace = TRUE),
              j = sample(ncol, nnz, replace = TRUE),
              x = rand.x(nnz))
 }

 M1 <- rSpMatrix(100000, 20, nnz = 200)
 summary(M1)

也可以看看

Matrix(*, sparse=TRUE) 用於此類矩陣的更常用構造函數。然後,sparseMatrixspMatrix() 更通用、更靈活,並且默認返回 CsparseMatrix,這通常稍微更理想。此外,bdiagDiagonal 用於(塊)對角矩陣構造函數。

考慮TsparseMatrix 和類似的類定義幫助文件。

相關用法


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