我有一个下三角矩阵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>]