zoukankan      html  css  js  c++  java
  • 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)。

    A =
         1     5     9
         2     1     6
         3     5     8
    >> sortrows(A,[2 3])
    ans =
         2     1     6
         3     5     8
         1     5     9
    

       先按第二列排,如果第二列中有相等的行(例子中的第二行,第三行),再按第三列排(第二列固定不动,按第三列的升序排列,第一行的值跟随第三行变化),这里的【2 3】并不是一个矩阵值的位置,而是第二行与第三行的意思,同理,

    A =
         1     5     9
         2     1     8
         3     5     8
    
    sortrows(A,[2 3 1])
    ans =
         2     1     8
         3     5     8
         1     5     9
    
    

      先按2排,再按3按(两个5),最后按1排(两个8)。如果没有相同的值,无论sortrows(A,[x y])中的y真如何变化,结果都是一样的,等同于sortrows(A,x)。

      参考:百度知道,ILOVEMatlab 。

  • 相关阅读:
    ORA00845 MEMORY_TARGET not supported on this system (oracle11g for asianux3 )
    文件处理命令
    网络通信
    Chapter05Usage and Configuration of the Oracle Shared Server
    压缩解压缩命令
    PAT 1088 Rational Arithmetic[模拟分数的加减乘除][难]
    知识点最小二乘学习与正规表达式
    Missing Number[回溯][难]
    PAT 1065 A+B and C[大数运算][溢出]
    PAT 1055 The World's Richest[排序][如何不超时]
  • 原文地址:https://www.cnblogs.com/hxsyl/p/4551133.html
Copyright © 2011-2022 走看看