How do I sort an array by only one column?

I have an array with the first column being x-coordinate, the second column being y-coordinate and then the next few columns being different values. I've used an if function so that all the y-coordinates are the same in the array but I then want to sort by x-coordinate (so my plot(x,y) is in order rather than jumping all over the place). The problem is that when I use the sort() function, it orders all my other columns too so the data is no longer associated with the correct coordinate.
Annotation 2019-03-17 123107.jpg
This is a copy of the data unsorted.
Annotation 2019-03-17 123143.jpg
This is after I've used the sort function. It also sorts column 3 which I don't want to happen. I want the 58.6480 value (column 3) to remain in the same row as the 20 value from column 1.

 Accepted Answer

doc sortrows
% ALWAYS read "See Also" when looking for related functions!!!
>> help sort
sort Sort in ascending or descending order.
B = sort(A) sorts in ascending order.
...
See also issorted, sortrows, min, max, mink, maxk.

7 Comments

matrix(:,1)=sort(matrix(:,1))
>> A = [3 6 5; 7 -2 4; 1 0 -9]
A =
3 6 5
7 -2 4
1 0 -9
>> A(:,1)=sort(A(:,1))
A =
1 6 5
3 -2 4
7 0 -9
>>
Now, while the other two columns aren't sorted, they don't match their associated data, either... :(
To do it this way, one would need something like--
[~,is]=sort(A(:,1);
A=A(is,:);
sortrows does the indexing/rearranging for you...
Completely agree dpb, as far as I understand OP just wants to sort the first column and leave the rest intact, maybe I misunderstood the question.
"The problem is that when I use the sort() function, it orders all my other columns too so the data is no longer associated with the correct coordinate."
madhan ravi
madhan ravi on 17 Mar 2019
Edited: madhan ravi on 17 Mar 2019
+1, Yes I reread it, now its clear. Thank you dpb :), sorry for the inconvenience.
'S ok...we all have our moments... :) I certainly "whiff" often enough.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2018b

Asked:

on 17 Mar 2019

Commented:

on 18 Mar 2019

Community Treasure Hunt

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

Start Hunting!