在特征矩阵中对行进行就地排序

时间:2015-01-20 10:41:03

标签: sorting matrix storage eigen

我编写了以下代码来对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中对单个行或列进行排序,而不管顺序如何。由于我在整个矩阵上逐行对行进行排序,因此解决方案可以对每条单独行的内容进行排序,而无需手动循环矩阵的行。

0 个答案:

没有答案