0

我想从一个矩阵A块创建一个矩阵B。A的大小发生了变化,所以我试图实现以下目标

Eigen::MatrixXd B(A.block<3,N>(0,0)); 

其中 N 是 A 的列数。我收到此错误the expression must have constant value.如何解决此问题?我试过使用const_cast<>,但我仍然遇到同样的问题。

4

1 回答 1

2

我认为这会起作用:

Eigen::MatrixXd B = A.block(0, 0, 3, N);

eigen 的 API 文档在这里。IfN是一个变量,它不能用作模板函数参数 ( <3,N>),因为它们必须是编译时常量(编译器block为每个组合或模板参数生成/实例化函数的一个版本。)

于 2014-12-11T20:38:34.097 回答