如何在C++(Armadillo)中从1:n创建一个向量?

8

这是一个非常简单的问题,但我在armadillo的文档中没有找到答案。

我正在寻找与Matlab的x =(1:n)相当的Armadillo / C ++,其中n是一个数字,因此x是一个向量[1,2,3 ...,n-1,n]

2个回答

7
请注意这个函数:this
vec v = linspace<vec>(1, N);

生成一个从1开始到N结束的向量。它正好做你需要的事情。

这太完美了。非常感谢 - 在浏览文档时错过了它。非常感激! - Anne
我需要等待3分钟,然后该网站才会让我继续 :) - Anne
这里不鼓励仅提供链接的答案。请至少提及函数名称,并可能给出如何使用它以获得所需结果的示例。 - liori
@liori 好的,抱歉。等一下。 - grzkv
谢谢,现在这个答案好多了! - liori
被接受的答案似乎不正确。这个可以工作:vec v = linspace<vec>(1, N, N);或者更好的是,如果我们用uvec替换vec - passerby51

4

假设您接受使用c++11并且正在使用std::vector,则可以使用std::iota

std::vector<int> x(n);
std::iota(x.begin(), x.end(), 1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接