【发布时间】:2016-07-24 21:22:51
【问题描述】:
这个问题是匆忙问出来的。我原来的程序中的错误,不是这里显示的代码中的错字。错误是在我的程序中 v 由于某些情况没有被填充。
从这个线程中更有用的收获是在接受的答案中演示了将 std::vector 复制到特征矩阵的所有行或列。
我想将向量复制到矩阵的列中,如下所示:
#include <Eigen/Dense>
#include <vector>
#include <iostream>
int main() {
int m = 10;
std::vector<Eigen::VectorXd> v(m);
Eigen::MatrixXd S(m,m);
for (int i = 0; i != m; ++i) {
v[i].resize(m);
for (int j = 0; j != m; ++j) {
v[i](j) = rand() % m;
}
//S.cols(i) = v[i]; //needed something like this
}
return 0;
}
S 的类型为 Eigen::MatrixXd,维度为 mxm。 v 是 Eigen::VectorXd 的 std::vector,其中每个 Eigen::VectorXd 的大小为 m,在 v 中有 m 个。
【问题讨论】: