gpt4 book ai didi

r - 如何将稀疏矩阵转换为非零元素的索引和值的矩阵

转载 作者:行者123 更新时间:2023-12-03 21:47:10 25 4
gpt4 key购买 nike

我们可以用 sparseMatrix 从非零元素的索引和值构造一个稀疏矩阵或 spMatrix .是否有任何函数将稀疏矩阵转换回所有非零元素的索引和值?例如

i <- c(1,3,5); j <- c(1,3,4); x <- 1:3
A <- sparseMatrix(i, j, x = x)

B <- sparseToVector(A)
## test case:
identical(B,cbind(i,j,x))

是否有任何函数做与 sparseToVector 类似的工作? ?

最佳答案

您的矩阵 A采用稀疏压缩格式(类 dgCMatrix)。您可以通过以下方式将其强制为非压缩稀疏格式

A.nc <- as (A, "dgTMatrix")

或者,您可以指定 giveCsparse = TRUEsparseMatrix称呼。
dgTMatrix的三元组形式基本上包含您在插槽中寻找的所有内容 i , j , 和 x , 只是 ij索引是使用基于 0 的偏移量完成的:
> str (A.nc)
Formal class 'dgTMatrix' [package "Matrix"] with 6 slots
..@ i : int [1:3] 0 2 4
..@ j : int [1:3] 0 2 3
..@ Dim : int [1:2] 5 4
..@ Dimnames:List of 2
.. ..$ : NULL
.. ..$ : NULL
..@ x : num [1:3] 1 2 3
..@ factors : list()

> cbind (i = A.nc@i + 1, j = A.nc@j + 1, x = A.nc@x)
i j x
[1,] 1 1 1
[2,] 3 3 2
[3,] 5 4 3
> all (cbind (i = A.nc@i + 1, j = A.nc@j + 1, x = A.nc@x) == cbind (i, j, x))
[1] TRUE

关于r - 如何将稀疏矩阵转换为非零元素的索引和值的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com