2017-01-02 55 views
1

如何重新排列Eigen矩阵的行(或列)而不复制它们?您可以使用Eigen::Map在不复制数据的情况下重塑它们,所以我假设有一些方法可以更改顺序,但在文档中似乎没有示例。特征重新排序行无复制

+1

'Eigen :: Map'可以在不复制的情况下重新塑形,因为它不需要重新排序,只需解读数组。这不适用于排列行或列。 – Sneftel

+1

'swap'似乎很快(请参阅https://eigen.tuxfamily.org/dox/AsciiQuickReference.txt)。 –

回答

2

您可以将矩阵乘以PermutationMatrixTranspositions matrix。如果乘以P * A,则根据P中的索引排列A的行。产品本身是懒惰的,即只在需要时评估(但是,在构建临时对象时,评估更复杂的表达式时没有强有力的保证)。