在没有足够内存的情况下乘以稀疏矩阵的快速方法

时间:2017-10-28 03:29:23

标签: r matrix-multiplication

我使用Matrix包,我需要执行以下操作

sum(rowSums(triu(A% * %(D% * %t(A)),1)))

但由于A%*%(D%*%t(A)),我遇到了cholmod错误没有足够的内存。有没有有效的方法来规避这个?谢谢你的阅读。

P.S:D是对角矩阵,我试过这个

sumit<-vector(mode = "numeric",length = dim(A)[1]-1)
   sumit<-rep(0,dim(A)[1]-1)
   E<-D %*%t(A)
   for(i in 2:dim(A)[[1]]){
   for(j in 1:i-1){

      asumitar<-as.numeric(sumit[i] + as.numeric((A[i,] %*% E[,j])))
      if(length(asumitar)==0){asumitar<-0}
      sumit[i]<-asumitar

    }
  }
  n<-sum(sumit)

但它永远不会完成计算。

0 个答案:

没有答案