Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R语言中加速稀疏矩阵乘法_R_Sparse Matrix_Matrix Multiplication - Fatal编程技术网

在R语言中加速稀疏矩阵乘法

在R语言中加速稀疏矩阵乘法,r,sparse-matrix,matrix-multiplication,R,Sparse Matrix,Matrix Multiplication,我试图用R中的%*%函数将矩阵(由少数1和多数O组成)与向量相乘,这个过程需要花费大量时间。有没有办法让这更快 谢谢您可以使用矩阵包创建稀疏矩阵。在这种情况下,矩阵/向量乘法可能更快。例如: 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), leng

我试图用R中的%*%函数将矩阵(由少数1和多数O组成)与向量相乘,这个过程需要花费大量时间。有没有办法让这更快


谢谢

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

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
库(矩阵)
图书馆(tictoc)
种子集(123)

v嗨,Naga,欢迎来到这个网站。如果你提供一个最小的、完整的、可复制的例子,你会得到更好的答案。如果有一个最小的数据示例可用于运行代码、实际使用或尝试的代码以及预期的结果,那么它会有所帮助。查看此帮助文件:有时了解您为什么要尝试做您正在做的事情也很有帮助。有时人们会给你更好的编码方式,有时人们会用不同的方式来回答,以更有效地解决问题。但是如果你只是想求解精确的矩阵乘法,这是没有必要的。好的,我们知道你的矩阵在数学上是稀疏的(包含很多零)。我们不知道它是否在计算上是稀疏的(以一种格式保存,如@dmca的答案,其中只显式存储非零值)。你能告诉我们,例如,
str(X)
你的矩阵在哪里吗?你可以看看稀疏矩阵代数R包,比如矩阵或垃圾邮件。