首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有效地存储大而低秩的矩阵

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

Stack Overflow用户
提问于 2013-03-14 08:46:09
回答 2查看 757关注 0票数 7

我知道在R中有一些包可以有效地存储稀疏矩阵。是否也有一种方法可以有效地存储低秩矩阵?例如:

代码语言:javascript
复制
A <- matrix(rnorm(1e6), nrow=1e5, ncol=1e1)
B <- A %*% t(A)

现在,B太大了,不能存储在内存中,但它的秩很低。有没有办法以一种有效的方式构造和存储B,这样一些基本的读取方法(rowSumscolSums等)就可以动态执行,以换取B或内存?

EN

回答 2

Stack Overflow用户

发布于 2014-02-13 22:29:41

你的问题已经是答案了:为了有效地存储这样一个低秩矩阵,你需要建立一个包含这两个因素的数据结构。如果需要矩阵-向量乘法,可以使用因子的矩阵-向量乘积从右到左完成。

这种策略和数据结构的一个应用可以在有限内存的Broyden或BFGS拟牛顿方法的实现中找到。

票数 2
EN

Stack Overflow用户

发布于 2013-03-28 18:10:30

这是另一种方法,尽管我错过了了解这种方法对大型矩阵的效率的经验:

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15399260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档