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

 채택된 답변

Jan
Jan 2013년 7월 4일

7 개 추천

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

추가 답변 (2개)

Jovana Dzunic
Jovana Dzunic 2019년 11월 17일

2 개 추천

Try this code
zerop=1:4;
p=[1,3,2,4];
invp(p)=zerop(1:4)
Hugo
Hugo 2013년 7월 4일

0 개 추천

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.

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2013년 7월 4일

답변:

2019년 11월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by