How to find the reverse of a permutation vector?

40 visualizzazioni (ultimi 30 giorni)
Dear all,
I have a permutation vector
p = [1 3 2 4];
and I define its corresponding permutation matrix is
P = [1 0 0 0 ; 0 0 1 0 ; 0 1 0 0 ; 0 0 0 1 ]; Then the transpose of P is P' = P.
So what's the corresponding permutation vector of P', said pt?
In this case, pt = p since P' = P.
So, are there any fast way (matlab function) to compute permutation vector pt for a given p, for more general case?
Thanks
Paul

Risposta accettata

Jan
Jan il 4 Lug 2013
Do you want this:
p = [1 3 2 4];
pt(p) = 1:length(p);

Più risposte (2)

Jovana Dzunic
Jovana Dzunic il 17 Nov 2019
Try this code
zerop=1:4;
p=[1,3,2,4];
invp(p)=zerop(1:4)

Hugo
Hugo il 4 Lug 2013
Notice that
p = P * (1:4)'
The same for pt, i.e.
pt = P' * (1:4)'
For vectors p of length N, just use:
pt= P' * (1:N)'
The transpose in (1:N)' is only there to ensure that (1:N) is a column vector.

Categorie

Scopri di più su Fourier Analysis and Filtering in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by