Matlab中sortrows函数解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
简介: 一.问题来源   返回检索到的数据(按相关度排序)在原始数据中的索引。 二.问题解析   x = [1 4 3 5; 1 3 2 6];sortrows(x)其结果是按照row来排列,默认首先排第一列,1和1一样大,那么排第二列,3比4小,所以1 3 2 6应该在第一行。
+关注继续查看

一.问题来源

  返回检索到的数据(按相关度排序)在原始数据中的索引。

二.问题解析

  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 。

目录
相关文章
|
2月前
|
存储 算法 Serverless
MATLAB匿名函数解析
MATLAB匿名函数解析
29 0
|
4月前
|
算法 Perl
基于解析法和遗传算法相结合的配电网多台分布式电源降损配置(Matlab实现)
基于解析法和遗传算法相结合的配电网多台分布式电源降损配置(Matlab实现)
|
6月前
|
数据挖掘 数据安全/隐私保护 开发者
MATLAB P文件解密工具让你轻松破解p文件,解析源代码!
这篇文章将为你推荐一个MATLAB P文件解密工具,可以将p文件解密成m文件,反编译p代码为m代码,并还原p文件或m文件的源代码。
|
6月前
|
索引
MATLAB矩阵和数组相关函数解析
MATLAB矩阵和数组相关函数解析
matlab:在FUNCTION处出现解析错误:使用的MATLAB语法可能无效。
matlab:在FUNCTION处出现解析错误:使用的MATLAB语法可能无效。
1179 0
matlab:在FUNCTION处出现解析错误:使用的MATLAB语法可能无效。
|
人工智能 算法
Ostu算法的Matlab源代码以及程序解析
Ostu算法的Matlab源代码以及程序解析
Matlab中unifrnd函数使用解析
1.生成N阶[a,b]均匀分布数组 >> unifrnd(3,5,5,5) ans = 3.8651 4.6677 4.8115 4.3456 4.8560 4.
2448 0
|
算法 C语言
Matlab中rand('state',sum(clock))解析
一.问题来源   来自于一份PSO代码,PSO中需要初始化粒子位置和速度。 二.问题探究   众所周知,Matlab中的rand()函数产生的是伪随机数,但一般用来也可以接受。但是,如果我们知道伪随机数的初始状态,那么产生的伪随机数是唯一确定的。
1403 0
推荐文章
更多
推荐镜像
更多