gpt4 book ai didi

r - 大型矩阵的Kronecker产品

转载 作者:行者123 更新时间:2023-12-04 05:39:25 26 4
gpt4 key购买 nike

我正在寻找一种高效的方法来计算两个大型矩阵的Kronecker乘积。我尝试使用kronecker()方法,如下所示:

 I = diag(700)
data = replicate(15, rnorm(120))
test = kronecker(I,data)

但是,它需要很长时间才能执行,然后出现以下错误:
 Error: cannot allocate vector of size 6.8 Gb

最佳答案

只要使用Matrix::Diagonal构造对角矩阵,就会自动将test对象构造为稀疏矩阵:

library(Matrix)
I=Diagonal(700)
data = replicate(15,rnorm(120))
system.time(test <- kronecker(I,data))
## user system elapsed
## 0.600 0.044 0.671
dim(test)
## [1] 84000 10500
format(object.size(test),"Mb")
## [1] "19.2 Mb"

关于r - 大型矩阵的Kronecker产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18850576/

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