Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 计算复动态矩阵的特征值和特征向量_C++_Eigen - Fatal编程技术网

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)
{
....