我想从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
我的意思是,消息非常清楚,但我的问题是如何才能实现这种功能,而不是手动调整阵列大小并逐个填充?
答案 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;