首页 > 解决方案 > 使用 MatrixXd 进行本征求解器计算并抛出错误

问题描述

大家好,由于某种原因,我必须使用特征矩阵和特征求解器。在以下代码中:

        MatrixXd matrix(1, 3);
        int cpt = 1;
        for (QVector<float> v : coordinates_matrix) {

            matrix.row(cpt-1) = Vector3d(v[0],v[1],v[2]);
            cpt += 1;

            matrix.conservativeResize(cpt,Eigen::NoChange);

        }

        Eigen::EigenSolver<MatrixXd> solver;
        solver.compute(matrix);

问题是,当我尝试计算矩阵(代码块的最后一行)时,应用程序崩溃并抛出此错误:

Eigen::EigenSolver<MatrixType>& Eigen::EigenSolver<_MatrixType>::compute(const Eigen::EigenBase<OtherDerived>&, bool) [with InputType = Eigen::Matrix<double, -1, -1>; _MatrixType = Eigen::Matrix<double, -1, -1>]:  assertion « matrix.cols() == matrix.rows() » failed.

如果有人有任何想法或领导,我会很高兴听到它,谢谢。

标签: c++eigen

解决方案


推荐阅读