r - 加速 R 中的稀疏矩阵乘法

标签 r sparse-matrix matrix-multiplication

我正在尝试使用 R 中的 %*% 函数将矩阵(由少数 1 和大部分 O 组成)与向量相乘,此过程需要大量时间。有什么办法可以让它更快吗?

谢谢

最佳答案

您可以使用 Matrix 包创建稀疏矩阵。在这种情况下,矩阵/向量乘法可能会更快。例如:

library(Matrix)
library(tictoc)
set.seed(123)
v <- sample(1e4)
m  <- Matrix(sample(c(0, 1), length(v) ^ 2, T, c(.99, .01)),
         length(v), length(v), sparse = F)
sm <- Matrix(m, sparse = T)
tic("dense")
x <- m %*% v
toc()
#> dense: 0.094 sec elapsed
tic("sparse")
y <- sm %*% v
toc()
#> sparse: 0.006 sec elapsed

关于r - 加速 R 中的稀疏矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53307953/

相关文章:

matrix-multiplication - 在 Rcpp 中使用 NumericMatrix 和 NumericVector 进行矩阵乘法

r - 在 R 中计算经济模型 : How to apply shocks to parameter values in the euler equation?

r - 如何在R中的热图中放置黑色边框

matrix - 稀疏矩阵存储格式 - 转换

java - 线程数组 Java 矩阵

c - 矩阵乘法的动态内存分配

RStan 在精确贝叶斯模式和变分贝叶斯模式下给出不同的结果

R: kable_as_image 找不到 Ghostscript

python - 一种在 pythons scipy 模块的 coo_matrix 中获取非零值计数的方法?

c++ - Armadillo 稀疏实矩阵与复 vector 的乘法