我正在将一些代码从Matlab
移植到Armadillo
,并停留在一个简单的步骤中。我正在根据条件找到 vector res
的所有索引,然后要存储与条件相对应的矩阵Pts
的所有行。
所以在Matlab中是什么
ifAny = find(res < lim);
Pts = Pts(ifAny,:);
在 Armadillo -
arma::uvec ifAny = arma::find(res < lim);
// elem gives only the single column
// Pts = Pts.elem(ifAny);
最佳答案
根据Submatrix view section of Armadillo's API documentation,X.rows(vector_of_row_indices)
将从矩阵vector_of_row_indices
中提取所提供的X
中选定的非连续行集。
因此,在您的情况下,要获得与Matlab的Pts = Pts(ifAny,:)
等效的结果,可以使用:
Pts = Pts.rows(ifAny);
关于c++ - 为矩阵行分配特定索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29056301/