【发布时间】:2025-12-03 15:15:01
【问题描述】:
我想从一个向量构造一个更大的对角矩阵。我安装了bigalgebra 包,但它没有diag 功能。另外,如何逆矩阵(solve)和转置矩阵(t)到大矩阵。
v <- runif(42109)
V <- diag(v)
Error: cannot allocate vector of size 13.2 Gb
【问题讨论】:
我想从一个向量构造一个更大的对角矩阵。我安装了bigalgebra 包,但它没有diag 功能。另外,如何逆矩阵(solve)和转置矩阵(t)到大矩阵。
v <- runif(42109)
V <- diag(v)
Error: cannot allocate vector of size 13.2 Gb
【问题讨论】:
如果稀疏矩阵是一个选项,您可以使用 Matrix 包(随 R 提供)。
library(Matrix)
V <- Matrix(0, nrow=42109, ncol=42109)
diag(V) <- v
【讨论】:
Cholmod error 'out of memory' at file ../Core/cholmod_memory.c, line 147。当我去实现产品sqrt(V)%*%X%*%V%*%t(X)%*%sqrt(V)时会发生这种情况,其中X也是一个稀疏矩阵。