0

如何在 Eigen 中对稀疏矩阵的行和列进行迭代?

我有一个行主要稀疏矩阵,我想在它上面执行这些 matlab 命令:

r=总和(H,1)

r2=总和(H,2)

其中 H 是稀疏矩阵(0,1), r 和 r2 是整数向量。我认为我必须能够在 row 和 col 上进行迭代才能做到这一点。任何建议将不胜感激。

提前致谢。

4

1 回答 1

1

您可能想看看非常有用的eigen/matlab转换参考: http ://eigen.tuxfamily.org/dox/AsciiQuickReference.txt

在您的情况下,它转化为:

r  = H.colwise().sum() // sum(H, 1)
r2 = H.rowwise().sum() // sum(H, 2)

编辑

正如您所指出的,稀疏矩阵不支持这些函数。您可能必须重新实现它。我建议从https://forum.kde.org/viewtopic.php?f=74&t=122971

在你的例子中sum(H, 1),它可以写成:

r = H * VectorXd::Ones(H.cols())
于 2015-02-05T12:21:32.437 回答