Matlab使用sort进行排序---2022/04/07

文章目录

    • 问题重述
    • 函数解读
      • sort函数
      • sortrows函数
    • 代码实现

问题重述

1、对一维数组进行排序
2、对多维数组根据某一行进行排序,其他行数值跟着改变

函数解读

参考官网的说明

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)。

sortrows函数

语法

B = sortrows(A)
B = sortrows(A,column)
B = sortrows(,direction)
B = sortrows(
,Name,Value)
[B,index] = sortrows()
tblB = sortrows(tblA)
tblB = sortrows(tblA,‘RowNames’)
tblB = sortrows(tblA,rowDimName)
tblB = sortrows(tblA,vars)
tblB = sortrows(
,direction)
tblB = sortrows(,Name,Value)
[tblB,index] = sortrows(
)

说明

B = sortrows(A) 基于第一列中的元素按升序对矩阵行进行排序。当第一列包含重复的元素时,sortrows 会根据下一列中的值进行排序,并对后续的相等值重复此行为。
B = sortrows(A,column) 基于向量 column 中指定的列对 A 进行排序。例如,sortrows(A,4) 会基于第四列中的元素按升序对 A 的行进行排序。sortrows(A,[4 6]) 首先基于第四列中的元素,然后基于第六列中的元素,对 A 的行进行排序。
对于上述任意语法,B = sortrows(,direction) 均按 direction 指定的顺序对 A 的行进行排序。direction 可以是 ‘ascend’(默认值,对于升序排序)或 ‘descend’(对于降序排序)。direction 也可以是元素为 ‘ascend’ 和 ‘descend’ 的元胞数组,其中每个元素对应于 sortrows 对其进行运算的一个列。例如,sortrows(A,[4 6],{‘ascend’ ‘descend’}) 基于第四列按升序对 A 的行进行排序,然后基于第六列按降序排序。
B = sortrows(
,Name,Value) 指定用于对行进行排序的其他参数。例如,sortrows(A,‘ComparisonMethod’,‘abs’) 按模对 A 的元素进行排序。

更多说明参看官网指导

代码实现

% 日期:2022.04.07
% 功能:使用sort函数对数组进行排序

% 一维数组
A=[1.5,8.9,0.9,3.66,4.77];
B=sort(A,'descend');%降序排列,大的在前
C=sort(A,'ascend');%升序排列,大的在后

%记录排列前后元素位置的变化,即只对某一列进行排列,其他数值也跟着变化,使用sortrows
a=[1.5,8.9,0.9,3.66,4.77;1,2,3,4,5];
b1=sortrows(a',1);%先进行转置,再对第一列进行排列
b2=b1';

测试页面如下:
Matlab使用sort进行排序---2022/04/07_第1张图片

你可能感兴趣的:(matlab,matlab)