如何将数据从C ++数组复制到特征矩阵或向量?

时间:2017-05-11 05:59:17

标签: c++ arrays vector eigen

我在C ++数组中有一些数据double myData[10];我想将此数组的n元素复制到Eigen中的向量,声明为Eigen::MatrixXd myVector。我可以在循环中一次执行一个,但必须有一种方法来复制整个数组。我尝试了这段代码,但它得到了一个编译错误(错误C2106:'=':左操作数必须是l值):

myVector.resize(4); myVector.data() = myData;

我不想映射数组,因为C ++数组将超出范围,并且要复制的额外内存量是微不足道的。

从C ++数组复制到特征向量的适当方法是什么?从二维C ++数组到特征矩阵?

1 个答案:

答案 0 :(得分:1)

您需要使用Eigen对象(Map)包装现有数据,然后将其复制到您的对象:

myVector = Eigen::Map<Eigen::MatrixXd>(myData, rows, cols);