I have a lower triangular matrix M (strict, with 0 on the diagonal).
I want to turn this unto a symmetric matrix, efficiently.
(e.g. i want to do M<-M+M'
). I'm using 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 Derived& Eigen::MatrixBase::operator+=(const Eigen::MatrixBase&) [with OtherDerived = OtherDerived, Derived = Eigen::Matrix]
/eigen/Eigen/src/Core/MatrixBase.h:517:46: note: template Derived& Eigen::MatrixBase::operator+=(const Eigen::ArrayBase&) [with OtherDerived = OtherDerived, Derived = Eigen::Matrix]
/eigen/Eigen/src/Core/DenseBase.h:266:14: note: template Derived& Eigen::DenseBase::operator+=(const Eigen::EigenBase&) [with OtherDerived = OtherDerived, Derived = Eigen::Matrix]