0

Eigenで疎行列の行と列の両方を反復するにはどうすればよいですか?

これらのmatlabコマンドを実行したい行優先疎行列があります:

r=合計(H,1)

r2=合計(H,2)

ここで、H は (0,1 の) スパース行列、r と r2 は整数ベクトルです。それを行うには、行と列の両方の反復を実行できなければならないと思います。任意の提案をいただければ幸いです。

前もって感謝します。

4

1 に答える 1

1

非常に便利な変換リファレンス をeigenご覧になることをお勧めします: http://eigen.tuxfamily.org/dox/AsciiQuickReference.txtmatlab

あなたの場合、それは次のように変換されます:

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 に答える