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