我知道在R中有一些包可以有效地存储稀疏矩阵。是否也有一种方法可以有效地存储低秩矩阵?例如:
A <- matrix(rnorm(1e6), nrow=1e5, ncol=1e1)
B <- A %*% t(A)现在,B太大了,不能存储在内存中,但它的秩很低。有没有办法以一种有效的方式构造和存储B,这样一些基本的读取方法(rowSums、colSums等)就可以动态执行,以换取B或内存?
发布于 2014-02-13 22:29:41
你的问题已经是答案了:为了有效地存储这样一个低秩矩阵,你需要建立一个包含这两个因素的数据结构。如果需要矩阵-向量乘法,可以使用因子的矩阵-向量乘积从右到左完成。
这种策略和数据结构的一个应用可以在有限内存的Broyden或BFGS拟牛顿方法的实现中找到。
https://stackoverflow.com/questions/15399260
复制相似问题