Ich habe eine seltene Matrix A
in Eigen C++. Jetzt mag ich es an einem anderen Sparse Matrix zur Symmetrierung Asym
:Wie man eine spärliche Matrix in Eigen C++ symmetriert?
Ich habe gehofft, dass es so einfach sein würde, wie:
Eigen::SparseMatrix<FLOATDATA> A;
...
Eigen::SparseMatrix<FLOATDATA> Asym = 0.5*(A+A.transpose()); // error here
Aber wegen offensichtlichen Gründen es den folgenden Assertion-Fehlerfehler gibt:
error: static assertion failed: THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH
Meine Frage ist, wie Sie die obige Operation in Eigen C++ sauber machen?
ist ein symmetrisches? Wenn nicht, können Sie A und seine Transponierung nicht hinzufügen. Mit anderen Worten, Sie können zwei Matrizen hinzufügen, mxn und nxm genau dann, wenn m == n ist. Ich habe auch nie eine einzige Formel gesehen, in der A + A^T durchgeführt wird. Versuchen Sie A^T x A, was manchmal sehr sinnvoll ist. –