分享

MATLAB sort函数用法

 aixuexidewau1 2019-05-09

sort(A):对一维或二维矩阵进行升序排序,并返回排序后的矩阵;当A为二维矩阵时,对矩阵的每一列分别进行排序。

sort(A,dim):对矩阵按指定的方向进行升序排序,并返回排序后的矩阵。当dim=1时,对矩阵的每一列排序(即将第一维行数打乱重排);当dim=2时,对矩阵的每一行排序(即将第二维列数打乱重排)。

sort(A,dim,mode):mode为'ascend'时,进行升序排序;mode为'descend'时,进行降序排序。相比于sort(A)可见默认升序,默认dim=1。

[B,IX]=sort(A,...):IX为排序后备元素在原矩阵中的行位置或列位置的索引,为与A同样大小的标量矩阵,且每行(dim=2)或每列(dim=1)遍布1:行数m,或遍布1:列数n

sort在按一维和按二维排列矩阵的MATLAB实现过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clear all;clc;close all;
A=[10 13 7;1 5 9;6 2 3]
%下面两种排序方式中,mode均未指定,默认'ascend'升序
%dim==2,按行排序的sort函数实现
[B,indb]=sort(A,2)
%按行排序的循环语句实现
for i=1:size(A,1)
    B1(i,:)=A(i,indb(i,:));
end
B1
%dim==1,按列排序的sort函数实现
[C,indc]=sort(A,1)
%按列排序的循环语句实现
for j=1:size(A,2)
    C1(:,j)=A(indc(:,j),j);
end
C1

  运行结果如下:

A =

10 13 7
1 5 9
6 2 3


B =

7 10 13
1 5 9
2 3 6


indb =

3 1 2
1 2 3
2 3 1


B1 =

7 10 13
1 5 9
2 3 6


C =

1 2 3
6 5 7
10 13 9


indc =

2 3 3
3 2 1
1 1 2


C1 =

1 2 3
6 5 7
10 13 9

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多