有效地存储大而低秩的矩阵

Jer*_*oen 7 r matrix rank cran

我知道R中有包可以有效地存储稀疏矩阵.还有一种方法可以有效地存储低秩矩阵吗?例如:

A <- matrix(rnorm(1e6), nrow=1e5, ncol=1e1)
B <- A %*% t(A)
Run Code Online (Sandbox Code Playgroud)

现在,B太大而不能存储在内存中,但它的级别很低.有没有什么办法来构建和存储B以高效的方式,这样一些基本的读取方法(rowSums,colSums等)都是在飞行中进行,以便为CPU或内存交易?

flo*_*onk 0

这是另一种方法,尽管我想念这种方法对于大型矩阵的效率如何:

如果秩低,则意味着矩阵包含许多不相关的行,这些行是其他行的线性组合。如果矩阵表示线性方程组,则可以设计一种算法,连续删除这些线。

要检查某行是否不相关,请检查没有该行的矩阵的秩是否仍然相同。要计算矩阵秩,请参阅这个那个答案。