sorting a list by position

2 visualizzazioni (ultimi 30 giorni)
Lucy Hannah
Lucy Hannah il 1 Mag 2019
Modificato: Guillaume il 1 Mag 2019
p=[5 3 1 7 9 2 4 6 8]
o=[0 2 4 2 4 3 1 1 3]
I want to sort o from largest to smallest, but while sorting o, the movement position of o is also applied to the same position of p when sorting
so when aftersorted o=[4 4 3 3 2 2 1 1 0]
p will become [9 1 2 8 3 7 4 6 5]
or [1 9 8 2 7 3 6 4]
where in p the number 9 and 1 can be swap and is the same because from o there are two 4's that is in the same position as p
2 and 8 could be swap
3 and 7 can be swapped
4 and 6 can be swapped
5 cannot be swapped because only 1 number

Risposta accettata

Guillaume
Guillaume il 1 Mag 2019
[newo, order] = sort(o, 'descend');
newp = p(order);
  2 Commenti
Lucy Hannah
Lucy Hannah il 1 Mag 2019
what is newo and newp
Guillaume
Guillaume il 1 Mag 2019
Modificato: Guillaume il 1 Mag 2019
Your new sorted o and sorted p. You can call them whatever you want, o and p respectively if you want to replace the original vectors.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by