Как получить матрицу перестановок, заменяющую две строки матрицы в Eigen3? - PullRequest
0 голосов
/ 24 октября 2018

Я бы хотел определить матрицу перестановок следующим образом:

PermutationMatrix<Dynamic, Dynamic> perm(n)
perm.setIdentity();
"swap(perm_row(i), perm_row(j))",

, где perm_row(i) и perm_row(j) обозначают i -ую и j -ую строки perm соответственно.Как выполнить оператор "swap(perm_row(i), perm_row(j))" в Eigen3?

1 Ответ

0 голосов
/ 24 октября 2018

Если вам не нужно выполнять другие перестановки, вы можете сделать:

perm.indices()[i] = j;
perm.indices()[j] = i;

Если вам нужно выполнить больше перестановок, то вы можете поменять местами столбцы и затем транспонировать их:

for(...)
  swap(perm.indices()[i],perm.indices()[j]);
perm_row = perm.inverse();

или используйте Eigen :: Transpositions .

...