如何使用 Eigen 从 vector<vector<float>> 创建矩阵? [复制]
Posted
技术标签:
【中文标题】如何使用 Eigen 从 vector<vector<float>> 创建矩阵? [复制]【英文标题】:How to create a matrix from vector<vector<float>> using Eigen? [duplicate] 【发布时间】:2020-10-24 23:22:41 【问题描述】:我有一个大小为 N 的向量,其中包含大小为 3 的向量(3D 点)。如何将其转换为 N 行 3 列的特征矩阵?
【问题讨论】:
【参考方案1】:如果我理解您的问题,这应该可以完成工作。
#include <Eigen/Geometry>
#include <Eigen/Dense>
#include <iostream>
#include <vector>
Eigen::MatrixXf convert_vect2mat(std::vector<std::vector<float> > & input_vector)
int n_row = input_vector.size();
int n_col = input_vector[0].size(); // based on your description this should be 3.
Eigen::MatrixXf output_matrix(n_row, n_col);
for(int i = 0; i < n_row; i++)
output_matrix(i, 0) = input_vector[i][0];
output_matrix(i, 1) = input_vector[i][1];
output_matrix(i, 2) = input_vector[i][2];
//std::cout << output_matrix << std::endl;
return output_matrix;
int main()
std::vector<std::vector<float> > vect = 1,2,3, 4,5,6, 7,8,9, 10,11,12;
Eigen::MatrixXf result = convert_vect2mat(vect);
std::cout << result << std::endl;
return 0;
【讨论】:
这可能(并且希望)不是任何人想要的:它只是复制所有元素,因此不是很有帮助。您还包括许多不需要的标题。请参阅***.com/questions/33668485/eigen-and-stdvector 以获得更好的答案。以上是关于如何使用 Eigen 从 vector<vector<float>> 创建矩阵? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用 std::vector<Eigen::MatrixXd> 进行内存管理
将数据从 std::Vector 存储到 Eigen::Vector 时出错 [重复]