我有一個下三角矩陣M(嚴格的,在對角線上有0)。 我想把它變成對稱矩陣,效率很高。 (例如,我想要做M<-M+M'
)。我正在使用Eigen。特徵對稱矩陣
我的問題,是我做:
U=U+U.transpose();
但閱讀的文檔我有感覺,也許,我 應該採取的一些功能等優勢 爲.noalias()
和/或.transposeInPlace()
,但 明顯的候選人:
U+=U.transposeInPlace();
給出了一個錯誤。
編輯:
這裏是錯誤消息:
.cpp:210:24: note: candidates are:
/eigen/Eigen/src/Core/MatrixBase.h:183:14: note: template<class OtherDerived> Derived& Eigen::MatrixBase::operator+=(const Eigen::MatrixBase<OtherDerived>&) [with OtherDerived = OtherDerived, Derived = Eigen::Matrix<float, -0x00000000000000001, -0x00000000000000001>]
/eigen/Eigen/src/Core/MatrixBase.h:517:46: note: template<class OtherDerived> Derived& Eigen::MatrixBase::operator+=(const Eigen::ArrayBase<OtherDerived>&) [with OtherDerived = OtherDerived, Derived = Eigen::Matrix<float, -0x00000000000000001, -0x00000000000000001>]
/eigen/Eigen/src/Core/DenseBase.h:266:14: note: template<class OtherDerived> Derived& Eigen::DenseBase::operator+=(const Eigen::EigenBase<OtherDerived>&) [with OtherDerived = OtherDerived, Derived = Eigen::Matrix<float, -0x00000000000000001, -0x00000000000000001>]