我编写了以下代码来对en特征矩阵中的特定行进行排序:
Eigen::Matrix<int, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> a(3, 3);
a << 3,2,1,
12,5,6,
7,8,42;
std::sort(a.row(1).data(), a.row(1).data() + a.row(1).size());
如果我指定一个行主要订单,它可以工作并执行正确的就地排序。但是,如果矩阵是列主要的,则会出现问题,排序的矩阵为:
3 12 1
2 5 6
7 8 42
我明白为什么会这样。我想知道是否有一个简单的解决方案,可以在Eigen中对单个行或列进行排序,而不管顺序如何。由于我在整个矩阵上逐行对行进行排序,因此解决方案可以对每条单独行的内容进行排序,而无需手动循环矩阵的行。