我试图为线性系统编写求解器,并且来自Matlab / NumPy等,我发现Eigen的类型有点受限。
我目前的问题解决了这个问题:
D * DD + S
其中D
和DD
的类型为Eigen::DiagonalMatrix<double, Eigen::Dynamic, Eigen::Dynamic>
,S
为Eigen :: SparseMatrix`。
有(高效)方法吗?这看起来很基本所以我必须遗漏一些东西。我愿意放弃D
和DD
DiagonalMatrix
而他们只是SparseMatrix
,只要上面的表达太复杂了。
答案 0 :(得分:1)
假设稀疏矩阵S
沿对角线已经有非零系数,你可以这样做:
S.diagonal() += D.cwiseProduct(DD);