-
2021-04-21 03:03:22
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
19clear 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
更多相关内容 -
matlab基本函数sort
2021-05-01 12:01:12一起来学演化计算-matlab基本函数sort觉得有用的话,欢迎一起讨论相互学习~Follow Mesort对数组元素排序语法B = sort(A) 按照大小不等于1的第一个数组维度对A的元素按升序排序如果A是一个向量,那么sort(A)对向量元素...一起来学演化计算-matlab基本函数sort
觉得有用的话,欢迎一起讨论相互学习~Follow Me
sort
对数组元素排序
语法
B = sort(A) 按照大小不等于1的第一个数组维度对A的元素按升序排序
如果A是一个向量,那么sort(A)对向量元素进行排序
如果A是一个矩阵,那么sort(A)将A的列作为向量,并对每一列进行排序
如果A是一个多维数组,那么sort(A)沿着大小不等于1的第一个数组维度操作,将元素视为向量。
B = sort(A,dim)
返回沿维度dim的已排序元素。例如,如果A是一个矩阵,那么sort(A,2)对每一行中的元素进行排序
B = sort( ___ ,direction) 返回使用前面任何语法按方向指定的顺序排序的元素。单字符串“ascend”表示升序(默认情况下),“descent”表示降序。
[B,I] = sort( ___ ) 返回以前任何语法的索引向量集合。I的大小与A相同,描述了A的元素沿排序维数排列成B的情况。例如,如果A是一个数值向量,B = A(I)。即 返回排序后元素的索引
示例
按升序排列向量
创建一个行向量,并按升序对其元素排序
A = [9 0 -7 5 3 8 -10 4 2];
B = sort ()
B =
-10 7 0 2 3 4 5 8 9
对矩阵中的行做升序排列
A = [3 6 5; 7 -2 4; 1 0 -9]
A =
3 6 5
7 -2 4
1 0 -9
B = sort(A,2)
B =
3 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 =
10 -12 4 8
6 -9 8 0
2 3 11 -2
1 1 9 3
B = sort(A,'descend')
B =
10 3 11 8
6 1 9 3
2 -9 8 0
1 -12 4 -2
排序并索引日期数组
创建一个datetime值数组,按升序排序,即从最早的日历日期到最近的日历日期
ds = {'2012-12-22';'2063-04-05';'1992-01-12'};
A = datetime(ds,'Format','yyyy-MM-dd')
A =
2012-12-22
2063-04-05
1992-01-12
[B,I] = sort(A)
B =
1992-01-12
2012-12-22
2063-04-05
I =
3
1
2
B列出了排序后的日期,I包含了A对应的索引。使用索引数组I直接访问原始数组中已排序的元素
A(I)
ans =
1992-01-12
2012-12-22
2063-04-05
3-D数组排序
创建一个2×2×2的数组,并沿着第三维按升序排列其元素
A(:,:,1) = [2 3; 1 6];
A(:,:,2) = [-1 9; 0 12];
A
A(:,:,1) =
2 3
1 6
A(:,:,2) =
-1 9
0 12
B = sort(A,3)
B(:,:,1) =
-1 3
0 6
B(:,:,2) =
2 9
1 12
% 使用A(:),表示对A的所有元素进行排序
B = sort(A(:))
B =
-1
0
1
2
3
6
9
12
输入参数
输出参数
原文:https://www.cnblogs.com/cloud-ken/p/11259385.html
-
详解Matlab中 sort 函数用法
2021-04-20 07:57:30(1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序.eg: A=[1,5,3],则sort(A)=[1,3,5]A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3](2)B=sort(A,dim),对数组按指定方向...(1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序.
eg: A=[1,5,3],则sort(A)=[1,3,5]
A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3]
(2)B=sort(A,dim),对数组按指定方向进行升序排序,
dim =1,表示对每一列进行排序,,dim=2表示对每一行进行排序.
(3)B=sort(A,dim,mode),mode为指定排序模式,mode为"ascend"时,进行升序排序,为"descend "时,进行降序排序.
(4)[B,I]=sort(A,.....),I为返回的排序后元素在原数组中的行位置或列位置.
一些例子:
>> A=[3 4 2;1 5 3;4 7 1]
A =
3 4 2
1 5 3
4 7 1
>> A(:)
ans =
3
1
4
4
5
7
2
3
1
>> min(A(:))
ans =
1
>> max(A(:))
ans =
7
>> A
A =
3 4 2
1 5 3
4 7 1
>> sort(A)
ans =
1 4 1
3 5 2
4 7 3
>> A
A =
3 4 2
1 5 3
4 7 1
>> sort(A(:))
ans =
1
1
2
3
3
4
4
5
7
>> sort(A,1)
ans =
1 4 1
3 5 2
4 7 3
>> sort(A,2)
ans =
2 3 4
1 3 5
1 4 7
>> sort(A,1,"descend")
??? sort(A,1,"descend")
Error: Missing variable or function.
>> sort(A,1,'descend')
ans =
4 7 3
3 5 2
1 4 1
>> [B,I]=sort(A)
B =
1 4 1
3 5 2
4 7 3
I =
2 1 3
1 2 1
3 3 2
以上内容简单给大家介绍了matlab中 sort 函数用法 ,希望对大家以上帮助,更多有关sort函数的相关知识请登录聚米学院网站官网了解更多!
-
MATLAB sort 函数的 OpenCV 实现
2021-04-24 00:15:02在 MATLAB 里,返回排序后的矩阵以及对应原矩阵的索引是在 sort 一个函数搞定,但在 OpenCV 中,其功能分别被分配到了 cv::sort 和 cv::sortIdx 里,cv::sort 负责返回排序后的矩阵,cv::sortIdx 负责返回对应原矩阵...在 MATLAB 里,返回排序后的矩阵以及对应原矩阵的索引是在 sort 一个函数搞定,但在 OpenCV 中,其功能分别被分配到了 cv::sort 和 cv::sortIdx 里,cv::sort 负责返回排序后的矩阵,cv::sortIdx 负责返回对应原矩阵的索引。
还有在 MATLAB 里,1 和 2 用来分别指示是对列还是对行进行排序,’ascend’ 和 ‘descend’ 用来指示是升序还是降序。在 OpenCV 中,我们用类似于 CV_SORT_EVERY_ROW + CV_SORT_ASCENDING 这样的方式来一并指定对列还是对行以及升序还是降序,其指示值定义如下,所以可以组合出 4 种不同的方式:
#define CV_SORT_EVERY_ROW 0
#define CV_SORT_EVERY_COLUMN 1
#define CV_SORT_ASCENDING 0
#define CV_SORT_DESCENDING 16
CV_SORT_EVERY_ROW + CV_SORT_ASCENDING:对矩阵的每行按照升序排序;
CV_SORT_EVERY_ROW + CV_SORT_DESCENDING:对矩阵的每行按照降序排序;
CV_SORT_EVERY_COLUMN + CV_SORT_ASCENDING:对矩阵的每列按照升序排序;
CV_SORT_EVERY_COLUMN + CV_SORT_DESCENDING:对矩阵的每列按照降序排序;
具体代码可见 OpenCV-and-CPP-for-MATLAB-Users Demo_OpenCVFunctions 文件夹下的 demo_sort_sortIdx.cpp 函数,为了方便起见,将代码陈列如下:
#include
#include
void demo_sort_sortIdx()
{
int testArrLen = 5;
cv::Mat_ testArr = cv::Mat::zeros(2, testArrLen, CV_32S);
testArr(0,0) = 87;
testArr(0,1) = 65;
testArr(0,2) = 98;
testArr(0,3) = 12;
testArr(0,4) = 55;
testArr(1,0) = 86;
testArr(1,1) = 66;
testArr(1,2) = 97;
testArr(1,3) = 17;
testArr(1,4) = 54;
cv::Mat_ sortArr, sortIdxArr;
cv::sort(testArr, sortArr, CV_SORT_EVERY_ROW + CV_SORT_ASCENDING);
cv::sortIdx(testArr, sortIdxArr, CV_SORT_EVERY_ROW + CV_SORT_ASCENDING);
std::cout<
std::cout<
std::cout<
}
转载请注明出处。
-
matlab的sort函数用法
2019-11-12 10:27:081. sort(A):对一维或二维矩阵进行升序排序,并返回排序后的矩阵;当A为二维矩阵时,对矩阵的每一列分别进行排序。 2. sort(A,dim):对矩阵按指定的方向进行升序排序,并返回排序后的矩阵。当dim=1时,对矩阵的每一... -
matlab sort()升序和降序
2021-04-22 10:00:04B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素... -
matlab中sort函数的用法
2021-04-19 04:26:34@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@help文档中第一句就说明,可以用sort将参量中的元素按升序或降序排列~格式:B = sort(A)%沿着输入参量A的不同维的方向、从小... -
matlab sort函数
2019-07-28 16:11:07一起来学演化计算-matlab基本函数sort 觉得有用的话,欢迎一起讨论相互学习~Follow Me sort 对数组元素排序 语法 B = sort(A) 按照大小不等于1的第一个数组维度对A的元素按升序排序 如果A是一个向量,那么sort(A)... -
Matlab 用sort函数排序
2021-04-18 14:00:59help文档中第一句就说明,可以用sort将参量中的元素按升序或降序排列~格式:B = sort(A)%沿着输入参量A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同... -
matlab sort用法
2021-12-10 20:32:14Y=sort(X) sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序...参数MODE表示按哪一种模式进行排序,当MODE=‘ASCEND’的时进行升序排序,当MODE=‘DESCEND’时,进行降序排序。 Y返回 -
Matlab的sort函数
2018-03-06 21:53:171、Matlab自带排序函数sort用法 [Y,I] = sort(X,DIM,MODE) sort函数默认Mode为'ascend'为升序,sort(X,'descend')为降序排列。 sort(X)若X是矩阵,默认对X的各列进行升序排列 sort(X,dim) dim=1时等效sort(X) ... -
MATLAB中排序函数sort()的用法
2020-04-23 10:18:25MATLAB中排序函数sort()可以对参数的元素进行升序排序或降序排序。 具体的用法如下: Y=sort(X) sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对... -
sort函数用法
2021-04-20 01:54:55sort函数功能把数组元素按升序或降序排列使用方法B = sort(A)把数组A沿不同维度上的元素按照升序排列。如果A是向量,sort(A) 对A中元素按照升序排列。如果A是矩阵,sort(A) 对A按每一列元素按照升序排列。如果A是... -
matlab中sort函数的用法 | 学步园
2021-04-22 06:26:56help文档中第一句就说明,可以用sort将参量中的元素按升序或降序排列~格式:B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全... -
matlab 排序函数sort()
2020-04-13 09:41:59Y=sort(X) sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对X的每一列进行升序排序; Y=sort(X,DIM,MODE) 参数DIM表示对哪一个维数进行排序,例如当X是... -
matlab2c使用c++实现matlab函数系列教程-sort函数
2017-08-29 20:13:26全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 ...2、将matlab2c.dll、matlab2c.lib和matlab2c.h放到项目头文件目录下 3、在cpp文件中引入下面的代码 #include "Matla -
MATLAB中的sort函数
2017-03-12 17:14:31sort的函数功能:把数组元素按升序或降序排列 使用方法 1) B = sort(A) 把数组A沿不同维度上的元素按照升序排列。 如果A是向量,sort(A) 对A中元素按照升序排列。 如果A是矩阵,sort(A) 对A按每一列元素... -
matlab排序函数sort的使用方法
2020-08-16 10:06:381.[B, I]=sort(V) B是排序后的结果,I是排序后每个元素在原矩阵V中的下标 2.B=sort(V, ‘descend’) B为V的降序排列 默认为‘ascend‘升序排列 -
Matlab中的sort函数
2018-03-24 15:46:18sort函数主要用于对矩阵或者是向量进行升序或者降序排列。(默认升序)语法:a.对于矩阵SORT(X)按升序排列X的每一列。 b.对于向量,SORT(X)按升序对X的元素进行排序。 c.对于N-D数组,SORT(X) 沿着X的第一个非单元素... -
matalb中排序的方法以及sort、sortrows函数的用法
2020-09-29 21:13:05排序算法函数 将一串数字(含重复)进行排序,输出nodey为从小到大排列的向量,nm为不重复的数字数目 function [nodey,nm]=lsq_PXH(node,cc) % n=length(node); yc=roundn(node(cc,:),-6); ny =yc(1); kk= 2; for i... -
sort函数用法 – MATLAB中文论坛
2021-04-18 08:00:46sort函数功能把数组元素按升序或降序排列使用方法B = sort(A)把数组A沿不同维度上的元素按照升序排列。如果A是向量,sort(A) 对A中元素按照升序排列。如果A是矩阵,sort(A) 对A按每一列元素按照升序排列。如果A是... -
Matlab 用sort函数排序 二维数组
2021-04-21 14:06:48在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可, 如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的... -
matlab中 sort 函数用法
2017-06-06 22:05:07(1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序. eg: A=[1,5,3],则sort(A)=[1,3,5] A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3] (2)B=sort(A,dim),对数...