In Matlab, how can I sort all of the rows of a matrix according to one of the columns?
If you want to sort all the rows of a matrix in Matlab according to one of the columns, the general syntax for the command to use is:
[OldRowNumber, NewRowNumber] = sort(OldMatrix(:,SortColumn)); NewMatrix = OldMatrix(NewRowNumber,:);Suppose, for example, you would like to rearrange the example matrix below (Figure 1) according to the value of the third column, so that your results would be as shown in Figure 2:
Figure 1
A = [1 2 3 3 0 9 6 5 4]Figure 2
B = [1 2 3 6 5 4 3 0 9]You would use the following command:
[x, i] = sort(A(:,3)); B = A(i,:);In the above example, x and i are
placeholder variable names representing the old and new row numbers,
respectively. You can replace these with any variable name.
For more information about statistical and mathematical software, email the UITS Stat/Math Center, visit the center's web page, or phone 812-855-4724 (IUB) or 317-278-4740 (IUPUI). The center is located in Bloomington at 410 N. Park Avenue, and is open for consultation by appointment Monday-Friday 9am-5pm.
Last modified on March 31, 2009.







