C++ 计算复动态矩阵的特征值和特征向量
我有一个类需要使用特征矩阵作为实例变量。不幸的是,我有不止一个尺寸,所以我认为我不得不使用动态作为尺寸参数 我将实例变量声明为:C++ 计算复动态矩阵的特征值和特征向量,c++,eigen,C++,Eigen,我有一个类需要使用特征矩阵作为实例变量。不幸的是,我有不止一个尺寸,所以我认为我不得不使用动态作为尺寸参数 我将实例变量声明为: Matrix<std::complex<float>, Dynamic, Dynamic> mCSM; 我在调试器中查看矩阵,它具有正确的大小,因此我认为这很好 现在我想得到矩阵的本征值和本征向量,这就是我丢失的地方 我试着 mEva和mEve都是实例变量,其构建方式与mCSM相同: Matrix<std::complex<flo
Matrix<std::complex<float>, Dynamic, Dynamic> mCSM;
我在调试器中查看矩阵,它具有正确的大小,因此我认为这很好
现在我想得到矩阵的本征值和本征向量,这就是我丢失的地方
我试着
mEva和mEve都是实例变量,其构建方式与mCSM相同:
Matrix<std::complex<float>, Dynamic, Dynamic> mEve;
Matrix<std::complex<float>, Dynamic, 1> mEva;
//mEve.resize(40, 40);
//mEva.resize(40);
您是否检查了
ces.compute(mCSM)
是否返回Eigen::Success
?您是否检查了ces.compute(mCSM)
是否返回Eigen::Success
?
ComplexEigenSolver<Matrix<std::complex<float>, Dynamic, Dynamic>> ces;
ces.compute(mCSM);
mEva = ces.eigenvalues();
mEve = ces.eigenvectors();
Matrix<std::complex<float>, Dynamic, Dynamic> mEve;
Matrix<std::complex<float>, Dynamic, 1> mEva;
//mEve.resize(40, 40);
//mEva.resize(40);
ces.compute(mCSM);
if (ces.info() == Eigen::Success)
{
....