sorting a vector by another vector

51 visualizzazioni (ultimi 30 giorni)
fima v
fima v il 14 Mar 2017
Modificato: Rik il 14 Mar 2017
Hello , my X vector looks like this 12,13,14,15,16,17,18,2,3,4,5,6,7,8,9,10,11 my Y vector looks like 2.6926,0.2879,1.93,-0.631,0.041,0.007,-0.077,-4.55,-3.984,-0.604,0.13,-0.49,-1.67,-2.276,-0.641,0.524,1.5758
how can i sort the X vector in ascending order so Y values will stay on the same indexes of the X vector as before
so if for example in Vector X before sorting, X(1)=12 Y(1)=2.6926 , then after the sorting the values will stay on the same index and X(11)=12 Y(11)=2.6926.
Thanks

Risposte (2)

ES
ES il 14 Mar 2017
doc sort
do a sort on X. sort gives two outputs, the sorted array and the index for sorting.
Using the index for sorting, sort Y.
[Z,I] = sort(X);
Y(I)% Output required by you

Rik
Rik il 14 Mar 2017
Modificato: Rik il 14 Mar 2017
You can use the second output of the sort function to get the indices. Type doc sort for more information and options.
[X,order]=sort(X);
Y=Y(order);

Categorie

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

Community Treasure Hunt

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

Start Hunting!

Translated by