sorting a vector by another vector

57 views (last 30 days)
fima v
fima v on 14 Mar 2017
Edited: Rik on 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

Answers (2)

ES
ES on 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 on 14 Mar 2017
Edited: Rik on 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);

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!