Eigenで疎行列の行と列の両方を反復するにはどうすればよいですか?
これらのmatlabコマンドを実行したい行優先疎行列があります:
r=合計(H,1)
r2=合計(H,2)
ここで、H は (0,1 の) スパース行列、r と r2 は整数ベクトルです。それを行うには、行と列の両方の反復を実行できなければならないと思います。任意の提案をいただければ幸いです。
前もって感謝します。
Eigenで疎行列の行と列の両方を反復するにはどうすればよいですか?
これらのmatlabコマンドを実行したい行優先疎行列があります:
r=合計(H,1)
r2=合計(H,2)
ここで、H は (0,1 の) スパース行列、r と r2 は整数ベクトルです。それを行うには、行と列の両方の反復を実行できなければならないと思います。任意の提案をいただければ幸いです。
前もって感謝します。
非常に便利な変換リファレンス
を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())