将C ++数组复制为Eigen矩阵的向量

时间:2018-02-27 14:44:43

标签: c++ eigen

我有一个特征矩阵:

Eigen::Matrix<double, Eigen::Dynamic, VECTOR_SIZE> my_matrix(num_vectors, VECTOR_SIZE);

我有一个带有VECTOR_SIZE元素的双数组:

double my_vector_data[VECTOR_SIZE];

我想将数组my_vector_data中的数据复制到my_matrix中的某一行。

如何将这样的C ++向量分配到特征矩阵中的特定行(向量)?

2 个答案:

答案 0 :(得分:2)

如果你想要它比@MichaelSmith的答案更复杂,这应该适用于std::array或原始数组data VECTOR_SIZE

using FixedSizeRowVector = Eigen::Matrix<double, 1, VECTOR_SIZE>;

size_t some_number = 10;
my_matrix.row(some_number) = Eigen::Map<FixedSizeRowVector> v(data);

我现在无法测试它。

答案 1 :(得分:1)

您可以通过执行以下操作将数据复制到矩阵中:

for (int i = 0; i < VECTOR_SIZE; i++)
{
    my_matrix(0, i) = my_vector_data[i];
}

您可以在此处找到有关系数访问器的更多信息:https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html#title4