私はEigen C++に疎な行列A
を持っています。今、私は別のスパース行列Asym
にそれを対称にしたい:Eigen C++で疎行列を対称化する方法は?
私はそれはのような単純なものであろうと期待していた:
Eigen::SparseMatrix<FLOATDATA> A;
...
Eigen::SparseMatrix<FLOATDATA> Asym = 0.5*(A+A.transpose()); // error here
しかしによる明白な理由のために、それは以下のアサート失敗のエラーを与える:
error: static assertion failed: THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH
私の質問にはきちんと固有C++で上記の操作を行う方法ですか?
は対称ですか?そうでない場合、Aとその転置を追加することはできません。つまり、m == nの場合にのみ、2つの行列mxnとnxmを追加することができます。私はA + A^Tが実行される単一の数式を見たこともありません。 A^T x Aを試していますか?時には多くの意味があります。 –