我期待通過提供矩陣的維數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