当前位置: 首页 > news >正文

MATLAB中sort函数用法

目录

语法

说明

示例

按升序对向量排序

按升序对矩阵行排序

按降序对矩阵列排序

对字符串数组排序

对 datetime 数组排序并进行索引

按相同顺序对向量进行排序

对三维数组排序

复数向量


        sort函数的功能是对数组元素排序。

语法

B = sort(A)
B = sort(A,dim)
B = sort(___,direction)
B = sort(___,Name,Value)
[B,I] = sort(___)

说明

B = sort(A) 按升序对 A 的元素进行排序。

        如果 A 是向量,则 sort(A) 对向量元素进行排序。

        如果 A 是矩阵,则 sort(A) 会将 A 的列视为向量并对每列进行排序。

        如果 A 是多维数组,则 sort(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。

B = sort(A,dim) 返回 A 沿维度 dim 的排序元素。例如,如果 A 是一个矩阵,则 sort(A,2) 对每行中的元素进行排序。

B = sort(___,direction) 使用上述任何语法返回按 direction 指定的顺序显示的 A 的有序元素。'ascend' 表示升序(默认值),'descend' 表示降序。

B = sort(___,Name,Value) 指定用于排序的其他参数。例如,sort(A,'ComparisonMethod','abs') 按模对 A 的元素进行排序。

[B,I] = sort(___) 还会为上述任意语法返回一个索引向量的集合。I 的大小与 A 的大小相同,它描述了 A 的元素沿已排序的维度在 B 中的排列情况。例如,如果 A 是一个向量,则 B = A(I)。

示例

按升序对向量排序

        创建一个行向量,并按升序对其元素排序。

A = [9 0 -7 5 3 8 -10 4 2];
B = sort(A)
B = 1×9-10    -7     0     2     3     4     5     8     9

按升序对矩阵行排序

        创建一个矩阵,并按升序对每一行排序。

A = [3 6 5; 7 -2 4; 1 0 -9]
A = 3×33     6     57    -2     41     0    -9B = sort(A,2)
B = 3×33     5     6-2     4     7-9     0     1

按降序对矩阵列排序

        创建一个矩阵,并按升序对每一列排序。

A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
A = 4×410   -12     4     86    -9     8     02     3    11    -21     1     9     3B = sort(A,'descend')
B = 4×410     3    11     86     1     9     32    -9     8     01   -12     4    -2

对字符串数组排序

        从 R2017a 开始,您可以使用双引号创建字符串数组,并使用 sort 函数对它们进行排序。根据 Unicode® 字典顺序对字符串数组的每一列中的字符串进行排序。

A = ["Santos","Burns"; ..."Jones","Morita"; ..."Petrov","Adams"];
B = sort(A)
B = 3x2 string"Jones"     "Adams" "Petrov"    "Burns" "Santos"    "Morita"对每一行中的字符串进行排序。B = sort(A,2)
B = 3x2 string"Burns"    "Santos""Jones"    "Morita""Adams"    "Petrov"

对 datetime 数组排序并进行索引

        创建一个由 datetime 值构成的数组,然后按升序排序,也就是从最早到最近的日历日期排序。

ds = {'2012-12-22';'2063-04-05';'1992-01-12'};
A = datetime(ds,'Format','yyyy-MM-dd')
A = 3x1 datetime2012-12-222063-04-051992-01-12[B,I] = sort(A)
B = 3x1 datetime1992-01-122012-12-222063-04-05I = 3×1312

        B 列出排序后的日期以及包含 A 的相应索引的 I。

使用索引数组 I 从原始数组直接访问排序后的元素。

A(I)
ans = 3x1 datetime1992-01-122012-12-222063-04-05

按相同顺序对向量进行排序

        创建两个在对应元素中包含相关数据的行向量。

X = [3 6 4 2 1 5];
Y = ["yellow" "purple" "green" "orange" "red" "blue"];

        首先对向量 X 进行排序,然后按照与 X 相同的顺序对向量 Y 进行排序。

[Xsorted,I] = sort(X)
Xsorted = 1×61     2     3     4     5     6I = 1×65     4     1     3     6     2Ysorted = Y(I)
Ysorted = 1x6 string"red"    "orange"    "yellow"    "green"    "blue"    "purple"

对三维数组排序

        创建一个 2×2×2 数组,并沿第三维度按升序对元素进行排序。

A(:,:,1) = [2 3; 1 6];
A(:,:,2) = [-1 9; 0 12];
A
A = 
A(:,:,1) =2     31     6A(:,:,2) =-1     90    12B = sort(A,3)
B = 
B(:,:,1) =-1     30     6B(:,:,2) =2     91    12

        使用 A(:)(A 的列表示形式)对 A 的所有元素进行排序。

B = sort(A(:))
B = 8×1-101236912

复数向量

        按复数向量元素的实部对元素进行排序。默认情况下,sort 函数按复数值的幅值对其进行排序,再使用相位角对幅值相同的值继续排序。将 'ComparisonMethod' 的值指定为 'real',以按复数值的实部对其排序。对于具有相等实部的元素,sort 将基于其虚部进行排序。

A = [1+2i 3+1i 1i 0 -1i];
B = sort(A,'ComparisonMethod','real')
B = 1×5 complex0.0000 - 1.0000i   0.0000 + 0.0000i   0.0000 + 1.0000i   1.0000 + 2.0000i   3.0000 + 1.0000i

字符和字符串数组的排序顺序

        MATLAB® 使用 UTF-16 字符编码方案将字符存储为 Unicode®。字符和字符串数组按 UTF-16 代码点顺序进行排序。对于同时也是 ASCII 字符的字符,此顺序意味着大写字母在小写字母之前。数字和某些标点符号也在字母之前。

提示

  • sortrows 函数提供了额外的灵活性,可基于矩阵或表输入的多列进行子排序。

  • ​sort 函数和关系运算符对复数使用不同顺序。可以参考关系运算。


http://www.mrgr.cn/news/64323.html

相关文章:

  • LabVIEW 离心泵机组故障诊断系统
  • Docker入门系列——网络
  • 香港将承办2025年全运会项目
  • Spring AI : 让ChatGPT成为你构建应用的核心亮点
  • 部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio
  • 代码-画图函数示例
  • 【Kaggle | Pandas】练习6:重命名和组合
  • cn.afterturn.easypoi.exception.excel.ExcelExportException: Excel导出错误 -> 修正过程。
  • (九)JavaWeb后端开发——Servlet
  • 【机器学习】回归树
  • 微信小程序scroll-view吸顶css样式化表格的表头及iOS上下滑动表头的颜色覆盖、z-index应用及性能分析
  • 异步回调之Join
  • 第十七课 component组件解析
  • Rust语言有哪些常用语句?
  • zyb 的 Codeforces Round 983 (Div. 2)
  • WPF+MVVM案例实战(十八)- 自定义字体图标按钮的封装与实现(ABD类)
  • Python使用K-means实现文本聚类
  • Respiratory Physiology Neurobiology
  • TCP编程-socket(套接字)编程实战1
  • RK3568平台开发系列讲解(中断篇)延迟工作实验
  • vscode makfile编译
  • 电阻基础知识(六)-电阻的失效模式和失效机理
  • 【MacOS实操】如何基于SSH连接远程linux服务器
  • redis详细教程(7.哨兵)
  • 《GBDT 算法的原理推导》 11-13初始化模型 公式解析
  • LangChain学习之路