分配具有特定索引的矩阵行
Assigning matrix rows with particular indices
我正在将一些代码从 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);
根据 Submatrix view section of Armadillo's API documentation,X.rows(vector_of_row_indices)
将从矩阵 X
.[=16] 中提取所提供的 vector_of_row_indices
中选定的一组非连续行=]
因此,在您的情况下,要获得相当于 Matlab Pts = Pts(ifAny,:)
的结果,您可以使用:
Pts = Pts.rows(ifAny);
我正在将一些代码从 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);
根据 Submatrix view section of Armadillo's API documentation,X.rows(vector_of_row_indices)
将从矩阵 X
.[=16] 中提取所提供的 vector_of_row_indices
中选定的一组非连续行=]
因此,在您的情况下,要获得相当于 Matlab Pts = Pts(ifAny,:)
的结果,您可以使用:
Pts = Pts.rows(ifAny);