如何从EigenBase构造动态数组?

时间:2014-07-03 00:36:40

标签: c++ eigen

我想从Eigen::Array<double,Dynamic,Dynamic>类型构建EigenBase类型。根据文档,我应该能够使用另一个数组的复制构造函数,例如:

http://eigen.tuxfamily.org/dox/classEigen_1_1Array.html#a0b2d2aba2e64b58c980399838f60205c

所以我尝试了以下内容:

#include <iostream>
#include <Eigen/Dense>
int main()
{
    Eigen::Array<double,2,2> a(1,2,3,4);
    Eigen::Array<double,Eigen::Dynamic,Eigen::Dynamic> b(a);
    return 0;
}

但我收到了这个错误:

  

错误:静态断言失败:THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE

我的意思是,消息非常清楚,但我的问题是如何才能实现这种功能,而不是手动调整阵列大小并逐个填充?

1 个答案:

答案 0 :(得分:1)

如上一个问题所示:What do the initialized Array constructors do?

您不能像这样初始化4长数组:

Eigen::Array<double,2,2> a(1,2,3,4);

你的选择是:

Eigen::Array<double,1,4> a(1,2,3,4);
Eigen::Array<double,4,1> a(1,2,3,4);

再次,你最好像这样初始化数组:

Eigen::Array<double,2,2> a;
a << 1, 2, 3, 4;