What is the reverse function of dmperm()?

I'm trying to solve Ax = b using Jacobi iterations.
The function dmperm() is used to permute the rows of A so that the diagonal has no zeros. b is also permuted by the same order of row permutation of A. Then I get x with rows permuted. How can I "unpermute" x to get the original order?
Thanks a lot!

 Réponse acceptée

Roger Stafford
Roger Stafford le 11 Déc 2013
As long as you use the single-output version of 'dmperm'
p = dmperm(A);
and only permute the rows of matrix A, getting A(p,:), then the elements of x are not permuted.
A permutation of both the rows and columns of A, A(p,q), will permute the elements of x by q. To get x back to the original order is accomplished by
x(q) = x;
which amounts to the inverse permutation of q.

1 commentaire

Elena
Elena le 11 Déc 2013
Thank you very much!!!
x(q) = x; is exactly what I want!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Sparse Matrices dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by