天天看點

Matlab中sortrows函數解析一.問題來源二.問題解析

  傳回檢索到的資料(按相關度排序)在原始資料中的索引。

  x = [1 4 3 5; 1 3 2 6];sortrows(x)其結果是按照row來排列,預設首先排第一列,1和1一樣大,那麼排第二列,3比4小,是以1 3 2 6應該在第一行。假如使用sortrows(x, 4)那麼結果中首先看第4列的大小,5比6小,那麼原來的順序就對了,如果是x = 1 2 3 61 2 3 5那麼,sortrows(x, 4)之後,由于第4列的5比6小,那麼,1 2 3 5應該排到前面。類似于姓名的排列,如果第一個字母一樣,那麼按照第二個字母排,第二個一樣,就按第三個排,隻不過這裡可以規定順序,就是首先按哪個排,然後在按哪個排。

  或是從某一列開始比較數值并按升序排序,例:C = sortrows(A,2)。

  亦可以從某一列開始以降序排列,例:D = sortrows(A, -4)。

  如果要求每一列都按照升序排列E=sort(A)如果要求每一列都按照降序排列F=-sort(-A)。

   先按第二列排,如果第二列中有相等的行(例子中的第二行,第三行),再按第三列排(第二列固定不動,按第三列的升序排列,第一行的值跟随第三行變化),這裡的【2 3】并不是一個矩陣值的位置,而是第二行與第三行的意思,同理,

  先按2排,再按3按(兩個5),最後按1排(兩個8)。如果沒有相同的值,無論sortrows(A,[x y])中的y真如何變化,結果都是一樣的,等同于sortrows(A,x)。

  參考:百度知道,ILOVEMatlab 。

繼續閱讀