How to find the reverse of a permutation vector?

47 visualizaciones (últimos 30 días)
Po-Yu (Paul) Chen
Po-Yu (Paul) Chen el 4 de Jul. de 2013
Respondida: Jovana Dzunic el 17 de Nov. de 2019
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

Respuesta aceptada

Jan
Jan el 4 de Jul. de 2013
Do you want this:
p = [1 3 2 4];
pt(p) = 1:length(p);

Más respuestas (2)

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

Hugo
Hugo el 4 de Jul. de 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.

Categorías

Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by