报错如下:
In instantiation of ‘Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator[](Eigen::Index) [with Derived = Eigen::Matrix<float, -1, -1>; Eigen::DenseCoeffsBase<Derived, 1>::Scalar = float; Eigen::Index = long int]’:
>error: static assertion failed: THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD
406 | EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,
note: ‘Eigen::Matrix<float, -1, -1>::IsVectorAtCompileTime’ evaluates to false
在 Eigen 库中,矩阵对象不支持使用方括号运算符来访问元素。具体来说,在 main.cpp 文件的第 29 行,使用了方括号运算符来访问矩阵元素,而 Eigen 库要求使用括号运算符。
要解决这个问题,可以将第 29 行的代码修改为使用括号运算符来访问矩阵元素,
解决办法,定位到出错那一行: 例如:
将
matrix[i][j] = 0 ;
改为:
matrix[i](j) = 0 ;