1
Q
稀疏矩陣和本徵
A
回答
2
最簡單的方法是迭代所有列並向稀疏矩陣添加稀疏矢量。你應該記住,如果你需要colwise操作,你的矩陣應該存儲爲Column-Major。
// allocate dense object
Eigen::MatrixXd M(2,4);
Eigen::VectorXd v(2);
// allocate sparse vector
Eigen::SparseVector<double> spV(2);
// allocate Column-major sparse matrix
Eigen::SparseMatrix<double, Eigen::ColMajor> spM(2, 4);
// initialize dense objects values
M << 1, 0, 0, 2,
4, 5, 0, 0;
v << 1,
3;
// convert dense objects to sparse representation
spM = M2.sparseView();
spV = v2.sparseView();
// iterate over sparse Matrix columns
for(int i = 0; i< spM.cols(); ++i) {
spM.col(i) += spV;
}
它不能在稠密矢量這樣的方式來完成,其中的原因之一是,這個操作沒有任何意義,因爲生成矩陣將是密集。在這種情況下,你需要創建一些密集矩陣和你這樣密集的向量執行colwise操作:
Eigen::MatrixXd(spM).colwise() + v
相關問題
- 1. 稀疏矩陣和矩陣
- 2. 本徵稀疏矩陣乘法似乎計算全矩陣
- 3. 徵:如何初始化一個稀疏矩陣與一些子稀疏矩陣
- 4. 稀疏矩陣
- 5. 以稀疏矩陣
- 6. 如何疊加幾個稀疏矩陣(特徵矩陣)?
- 7. 分配例外在本徵::稀疏矩陣::儲備
- 8. 98%稀疏矩陣的矩陣完成
- 9. python稀疏矩陣的矩陣功率
- 10. R矩陣包:Demean稀疏矩陣
- 11. 反相稀疏矩陣
- 12. R:在稀疏矩陣
- 13. 點產品稀疏矩陣
- 14. 切片稀疏(scipy)矩陣
- 15. 多稀疏矩陣與SQL
- 16. matlab:稀疏矩陣分解
- 17. scipy稀疏矩陣分裂
- 18. 稀疏矩陣內存
- 19. 朱莉婭稀疏矩陣
- 20. 轉身稀疏矩陣
- 21. 稀疏矩陣對齊
- 22. java稀疏矩陣問題
- 23. XGBoost以及稀疏矩陣
- 24. csv稀疏矩陣python
- 25. sklearn tsne用稀疏矩陣
- 26. OpenACC - 稀疏矩陣庫
- 27. R稀疏矩陣電源
- 28. UMFPACK和BOOST的uBLAS庫稀疏矩陣
- 29. 當分配稀疏矩陣導致稀疏矩陣時出現「no operator found」
- 30. 從稀疏矩陣的行創建一個稀疏對角矩陣
感謝,並很清楚,其實我在做什麼現在的問題是一樣的,你說,即迭代所有的列和做'spM.col(i)+ = spV',因爲密集矩陣有一個方便的方法'.colwise()'沒有迭代列,所以我只是發佈這個問題來確認我們是否可以做到這一點稀疏矩陣的'.colwise'事物:-) – avocado
@avocado正如isakoff已經說過的那樣,結果無論如何都是密集的,所以你應該把稀疏矩陣轉換爲一個密集矩陣並從那裏繼續。 'Eigen :: MatrixXd(spM).colwise()+ v'不給你一個稀疏矩陣,它給你一個密集的臨時矩陣(至少它曾經被計算過)。 –
@AviGinsburg,所以'Eigen :: MatrixXd(spM).colwise()+ v'無論如何都會創建一個密集矩陣,對吧?如果是的話,那麼我可能不會採取這種方式,因爲我處理的稀疏矩陣非常龐大。 – avocado