C ++犰狳生成给定vec或矩阵的索引uvec而不循环它

Posted

技术标签:

【中文标题】C ++犰狳生成给定vec或矩阵的索引uvec而不循环它【英文标题】:C++ Armadillo Generate Indices uvec of a given vec or matrix without looping it 【发布时间】:2017-05-09 12:05:42 【问题描述】:

大家好,

我的问题可能很明显,但我没有在其他帖子或犰狳文档上找到答案。

我想创建一个向量 B(在我的例子中是 arma::uvec),其中包含给定向量 A 的 每个索引。所以需要的元素是 (0:A.n_elem-1 )。我可以循环它,但我需要优化时间,所以我只想知道我是否可以生成它不循环它。最后一点,我想避免使用 C++ 11。

感谢您的宝贵时间。

编辑 1: 我确实使用 find_finite(X) 来生成我的索引 vec,因为我的数据都是有限的,我仍然不知道正确的方法。

【问题讨论】:

【参考方案1】:

我不太明白with every index of a given vector A,但如果你需要B 包含0:A.n_elem-1,你可以这样做:

vec B = regspace<vec>(0, A.n_elem-1)

以上代码等价于B = 0:length(A)-1,在MATLAB中。

希望对您有所帮助。

【讨论】:

谢谢,我不是很清楚,但这正是我想要的。

以上是关于C ++犰狳生成给定vec或矩阵的索引uvec而不循环它的主要内容,如果未能解决你的问题,请参考以下文章

C++ 中矩阵的动态名称(犰狳库)

具有临时消除功能的 C++ OpenCL 矩阵库

C ++犰狳重塑只有一维大小的矩阵

向量到矩阵犰狳

在犰狳中将矩阵除以向量

如何在犰狳中更新稀疏矩阵的值