我想从矩阵A的块中创建矩阵B.A的大小发生变化,所以我试图实现以下
Eigen::MatrixXd B(A.block<3,N>(0,0));
其中N是A的列号。我收到此错误the expression must have constant value.
如何解决此问题?我试过使用const_cast<>
,但我仍然遇到同样的问题。
答案 0 :(得分:2)
我认为这样可行:
Eigen::MatrixXd B = A.block(0, 0, 3, N);
eigen的API文档是here。
如果N
是变量,则它不能用作模板函数参数(<3,N>
),因为它们必须是编译时常量(编译器生成/实现函数的版本{{1对于每个组合或模板参数。)