Effacer les filtres
Effacer les filtres

Permute a vector by a specific ordering

18 vues (au cours des 30 derniers jours)
David
David le 15 Juil 2014
I have two vectors of the same length x and y, and each value in y corresponds to its value in x by the same index number, e.g.
x=[1 3 2 5 4]
y=[.2 .6 .5 .4 .3]
form the ordered pairs (1, 0.2), (3, 0.6), etc. Now I'd like to sort the vector x, but want to preserve the relationship of the two vectors. One thing I tried but didn't work is
[X I]=sort(x)
Y=permute(y,I) % how to permute y by ordering given by I?
This doesn't change the ordering of y at all. For this example the answer should be
X=[1 2 3 4 5]
Y=[.2 .5 .6 .3 .4]
Any ideas?

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 15 Juil 2014
Modifié(e) : Azzi Abdelmalek le 15 Juil 2014
x=[1 3 2 5 4]
y=[.2 .6 .5 .4 .3]
[X I]=sort(x)
Y=y(I)

Plus de réponses (1)

Ben11
Ben11 le 15 Juil 2014
You're almost there!
Try this:
[a b] = sort(x)
y = y(b)
y =
0.2000 0.5000 0.6000 0.3000 0.4000

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by