我在C ++数组中有一些数据double myData[10]
;我想将此数组的n
元素复制到Eigen中的向量,声明为Eigen::MatrixXd myVector
。我可以在循环中一次执行一个,但必须有一种方法来复制整个数组。我尝试了这段代码,但它得到了一个编译错误(错误C2106:'=':左操作数必须是l值):
myVector.resize(4); myVector.data() = myData;
我不想映射数组,因为C ++数组将超出范围,并且要复制的额外内存量是微不足道的。
从C ++数组复制到特征向量的适当方法是什么?从二维C ++数组到特征矩阵?
答案 0 :(得分:1)
您需要使用Eigen对象(Map
)包装现有数据,然后将其复制到您的对象:
myVector = Eigen::Map<Eigen::MatrixXd>(myData, rows, cols);