Matlab自帶排序函數sort用法
[Y,I] = sort(X,DIM,MODE)
sort函數默認Mode爲'ascend'爲升序,sort(X,'descend')爲降序排列。
sort(X)若X是矩陣,默認對X的各列進行升序排列
sort(X,dim)
dim=1時等效sort(X)
dim=2時表示對X中的各行元素升序排列
Matlab中給一維向量排序是使用sort函數:sort(X),其中x爲待排序的向量。若欲保留排列前的索引,則可用[sX,index] = sort(X) ,排序後,sX是排序好的向量,index是 向量sX中對X 的索引。 索引使排列逆運算成爲可能。事實上,這裏X≡sX(index), [X恆等於sX(index)],這個結論確實很奇妙,而且很有用。
matlab按某一列數值,改變矩陣中整行的排列位置。
b=sortrows(a,2) %a 爲要排序的矩陣。2表示按第幾列進行排序,整數代表升序,負數代表降序。
%將矩陣a按照第2列的升序排列,其他列不會作升序排列,而是將跟隨着第2列 的變化,保持一一對應。
b=sortrows(a,-1)
%將矩陣a按照第1列的降序排列,其他列將跟隨着第1列 的變化,保持一一對應。
data=magic(3)
data =
8 1 6
3 5 7
4 9 2
data1=sortrows(data,1)
data1 =
3 5 7
4 9 2
8 1 6
data2=sortrows(data,-1)
data2 =
8 1 6
4 9 2
3 5 7