我期待通过提供矩阵的维数m x n以及我期望拥有的非零元素的数量来预先分配R中的稀疏矩阵(使用simple_triplet_matrix)。 Matlab有函数“spalloc”(见下文),但是我还没有能够在R中找到相同的结果。有什么建议吗? S = spalloc(m,n,nzmax)创建一个大小为m乘n的全零稀疏矩阵S,空间容纳nzmax个非零值。在R中分配最大非零元素的稀疏矩阵
0
A
回答
1
尽管在R中预先分配一个传统的密集矩阵可能是有意义的(同样,预先分配一个规则(原子)向量而不是一个接一个地增加它的大小效率要高得多,我很确定它将不工资预分配稀疏矩阵中R,在大多数情况下。 为什么? 对于密集矩阵,可以分配,然后分配“一块一块的”,例如, m[i,j] <- value
对于稀疏矩阵,但是这是非常不同:如果你做了类似 S [i,j] < - 值 内部代码必须检查[i,j]是否是exis (通常不为零)。如果是这样,它可以更改的值,但其他方式,三角形(i,j, value)
需要存储和这意味着扩展当前的结构等。如果你一块一块地做,它是低效的......大多数情况下,如果你已经做了一些预分配或者不做分配的话。
如果,另一方面,你已经事先知道所有的[i,j]
组合,其中将包含非零,你可以“预分配”,但在这种情况下, 只存储载体i
和长度的j
例如nnzero
。然后使用您的基础“算法”还构建包含所有相应的value
的相同长度的向量,即条目。 现在的确如@Pafnucy所建议的那样,使用spMatrix()
或sparseMatrix()
这两个稍微不同的相同功能版本:根据其内容构建一个稀疏矩阵。
我很乐意进一步帮助,因为我是Matrix
包的维护者。
相关问题
- 1. 稀疏矩阵的非零元素
- 2. 只允许修改稀疏矩阵的非零元素
- 3. C#Mathnet Numerics的 - 获得非零稀疏矩阵元素
- 4. Theano:操作稀疏矩阵的非零元素
- 5. Python稀疏矩阵非零值交点
- 6. R:在稀疏矩阵
- 7. 在R中创建一个非常大的稀疏矩阵
- 8. R - 在非常大的稀疏矩阵中更新列
- 9. 大型稀疏矩阵上的快速非负矩阵分解
- 10. R最成熟的稀疏矩阵包?
- 11. 如何在Matlab中处理稀疏矩阵行中的非零元素?
- 12. 征库:在稀疏矩阵*行*设置所有非零元素,以零
- 13. 基于另一个矩阵(矩阵包)的稀疏矩阵的清零元素
- 14. 稀疏三元组稀疏矩阵matlab
- 15. 非常大的稀疏矩阵R中的k-均值聚类?
- 16. 在scipy中删除/设置稀疏矩阵的非零对角线元素
- 17. R稀疏矩阵电源
- 18. R:稀疏矩阵转换
- 19. [R构建稀疏矩阵
- 20. 稀疏矩阵分配变得在Matlab
- 21. Scipy稀疏矩阵分配只使用存储的元素
- 22. R矩阵包:Demean稀疏矩阵
- 23. 稀疏矩阵的乘积列元素
- 24. 稀疏矩阵的元素绝对值
- 25. 稀疏矩阵的划分
- 26. OpenCV稀疏矩阵:如何获得行/列中非零元素的索引
- 27. 从稀疏矩阵中绘制一个随机的非零元素
- 28. 取稀疏矩阵每列中所有非零元素的乘积
- 29. 最大尺寸稀疏矩阵NumPy
- 30. R大型稀疏矩阵中的聚类分析
参见包**矩阵**和函数'spMatrix'。 – Pafnucy