Matlab排序函数

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

 

你可能感兴趣的:(Matlab)