【问题标题】:Construct diagonal matrix using bigalgebra使用大代数构造对角矩阵
【发布时间】: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

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    如果稀疏矩阵是一个选项,您可以使用 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也是一个稀疏矩阵。