分配具有特定索引的矩阵行

时间:2015-03-15 01:34:57

标签: c++ matlab armadillo

我正在将一些代码从Matlab移植到Armadillo,并且只停留在一个简单的步骤。我在条件的基础上找到向量res的所有索引,然后想要存储与条件对应的矩阵Pts的所有行。

那么在matlab中是什么

ifAny = find(res < lim);
Pts = Pts(ifAny,:);

在犰狳 -

arma::uvec ifAny = arma::find(res < lim);
// elem gives only the single column
// Pts = Pts.elem(ifAny);

1 个答案:

答案 0 :(得分:2)

根据Submatrix view section of Armadillo's API documentationX.rows(vector_of_row_indices)会从矩阵vector_of_row_indices中提取所提供的X中选定的一组非连续行。

因此,在您的情况下,要获得相当于Matlab Pts = Pts(ifAny,:)的结果,您可以使用:

Pts = Pts.rows(ifAny);