How to find the reverse of a permutation vector?

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

 Accepted Answer

More Answers (2)

Try this code
zerop=1:4;
p=[1,3,2,4];
invp(p)=zerop(1:4)
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.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!