我有一个特征矩阵:
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 ++向量分配到特征矩阵中的特定行(向量)?
答案 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。