Sorting data points so x are in ascending order.
41 views (last 30 days)
Show older comments
I have two vectors x and y and they correspond to a given set of data points. How can I sort x in ascending order while at the same time, sorting y so that the values of y match up with their corresponding values of x?? Eg. (1,2) (3, 0) (-4, 6) (-2, 5) would yield vectors x = [1,3,-4,-2] and y = [2,0,6,5] then the sorted vectors would be x = [-4,-2,1,3] and y = [6,5,2,0].
0 Comments
Answers (3)
Jos (10584)
on 3 Dec 2013
Edited: Jos (10584)
on 3 Dec 2013
Use the second output of SORT
% example data
X = [1 3 -4 -2]
Y = [2 0 6 5]
[sortedX, sortIndex] = sort(X)
sortedY = Y(sortIndex)
Another option would be via SORTROW
0 Comments
Viktor
on 3 Dec 2013
Edited: Viktor
on 3 Dec 2013
You have a sortrows() function that you can use. Assuming you have two row vectors:
sorted = (sortrows([x',y'], 1))'
% reassigning sorted values
x = sorted(1,:);
y = sorted(2,:);
I just noticed that Jos has already mentioned, I left my answer here, it might be useful.
0 Comments
See Also
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!