c++ - 将 vector 堆叠到特征矩阵中

标签 c++ eigen eigen3

我试图通过堆叠两个 vector 来制作一个特征矩阵。为此,我创建了大小为 8 的两个 vector 。我还创建了一个矩阵。大小为 (2, 8)。为了做到这一点,我使用了以下代码。没有编译错误,但也没有输出(m 似乎是空的)。任何帮助表示赞赏。谢谢。

VectorXd v1;
v1 <<1,0,0,0,1,0,0,0;
VectorXd v2;
v2 << 0,1,0,0,0,1,0,0;

MatrixXd m(2, 8);
m.row(0) = v1;
m.row(1) = v2;

std::cout << m << std::endl;

期望的输出是:

1,0,0,0,1,0,0,0
0,1,0,0,0,1,0,0

最佳答案

对于 (2, 8) 矩阵,您的 vector 应按如下方式初始化:

VectorXd v1(8)
VectorXd v2(8)

否则你会得到一个段错误。

关于c++ - 将 vector 堆叠到特征矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57285159/

相关文章:

c++ - 有没有办法获取传递给函数的数组的大小?

c++ - 在 OpenMP C++ 中使用并行 block 时没有看到任何显着改进

c++ - Eigen 中矩阵的最大大小是多少?

c++ - 我应该如何从 Eigen 3中的张量切片中获取 vector ?

c++ - CRTP接口(interface): different return types in implementation

c++ - 通过模板发布 C++ Eigen::Matrix 类型

c++ - 指针和地址

c++ - 从 Excel 向应用程序发送命令?串口?

c++ - map 插入替换以前输入的值

c++ - 基于索引 vector 的特征矩阵切片