如何使用for循环将元素添加到vec或rowvec?

时间:2019-01-04 21:47:14

标签: c++ armadillo

尝试使用for循环在vec或rowvec中添加元素,但是每次循环添加元素时,矩阵每次都重置吗?

在Armadillo的Noob,我看过文档,但我什至找不到单个示例示例将它们用于循环。感谢您的帮助。

arma::vec A;
for (int i = 0; i < 10; i++) {
    A << i;
}
cout << A;

预期输出:0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0

实际输出:9.0

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。第一种方法是简单地预先声明向量的大小,然后set声明各个元素:

arma::vec A(10);
for (arma::uword i = 0; i < 10; ++i) {
    A(i) = i;
}

如果您事先不知道需要多少元素,请按照答案中详述的其他方法进行操作:push_back/append or appending a vector with a loop in C++ Armadillo