-
Matlab进行升序降序,matlab sort()升序和降序
2021-04-22 10:00:04B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素...B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素幅值的从小到大排列,若有幅值相同的复数元素,则再按它们在区间[-π ,π ]的幅角从小到大排列;若 A 中有元素为NaN,则将它们排到最后。若 A为向量,则返回从小到大的向量,若A为二维矩阵,则按列的方向进行排列;若A为多维数组,sort(A)把沿着第一非单元集的元素像向量一样进行处理。
B=sort(A,dim) %沿着矩阵A中指定维数dim方向重新排列A中的元素。
[B,IX]=sort(A); %其中IX是一个大小等于size(A)的数组,其每一列是A中列向量的元素相对应的置换位置记号。
在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可,如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A 中项的索引。排序是安升序进行的。
在Matlab中,访问矩阵中的元素,一维用A(1)访问向量A的第一个元素;(下标从1开始);二维用A(1,2)访问A中第一行,第二列的元素。
由于在sort函数的结果中,是安升序排序的,要转换成降序,先用X=eye(n)生成一个n维的单位阵,然后用X=rot90(X)将其旋转为次对角线的单位阵,再用原来矩阵乘以X即可,如要讲A逆序排列采用如下步骤:
X=eye(size(A));
X=rot90(X);
A=A*X;
上述降序办法不好。
简单好用的是:A=-sortrows(-A',第几行);A=A';
假如a是一个2*n的矩阵,即两行.
b=a(1,:);
[c,pos]=sort(b); %pos为排序后的下标,c为第一行的排序结果
a(2,:)=a(2,pos); %第二行按照第一行排序的下标对应
a(1,:)=c; %第一行结果重新赋给a 的第一行
以下适用于m*n的矩阵按第一行排序
[ b, pos ] = sort( a( 1, : ) );
a = a( :, pos );
X=magic(5)
X =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> [a,b]=sort(X,2)
a =
1 8 15 17 24
5 7 14 16 23
4 6 13 20 22
3 10 12 19 21
2 9 11 18 25
b =
3 4 5 1 2
2 3 4 5 1
1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
结果解释:
a是原来的矩阵x按照行,每行从小到大重新排列得到的新矩阵。
b告诉你重排的详细信息,也就是做了什么样的变动。
例如b的第一行显示3 4 5 1 2,那么将原矩阵X的第一行的第3 4 5 1 2个元素取出来,顺次排列,就变成a矩阵的第一行。
sort(X,2) 和sort(X,1)分别意思如下
举例:A = [ 3 3 5
0 4 2 ];
sort(A,1) %纵向排列
ans =
0 3 2
3 4 5
sort(A,2) %横向排列
ans =
3 3
-
matlab sort()升序和降序
2016-03-14 21:38:14B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素...B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素幅值的从小到大排列,若有幅值相同的复数元素,则再按它们在区间[-π ,π ]的幅角从小到大排列;若 A 中有元素为NaN,则将它们排到最后。若 A为向量,则返回从小到大的向量,若A为二维矩阵,则按列的方向进行排列;若A为多维数组,sort(A)把沿着第一非单元集的元素像向量一样进行处理。
B=sort(A,dim) %沿着矩阵A中指定维数dim方向重新排列A中的元素。
[B,IX]=sort(A); %其中IX是一个大小等于size(A)的数组,其每一列是A中列向量的元素相对应的置换位置记号。
在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可,如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A 中项的索引。排序是安升序进行的。
在Matlab中,访问矩阵中的元素,一维用A(1)访问向量A的第一个元素;(下标从1开始);二维用A(1,2)访问A中第一行,第二列的元素。
由于在sort函数的结果中,是安升序排序的,要转换成降序,先用X=eye(n)生成一个n维的单位阵,然后用X=rot90(X)将其旋转为次对角线的单位阵,再用原来矩阵乘以X即可,如要讲A逆序排列采用如下步骤:
- X=eye(size(A));
- X=rot90(X);
- A=A*X;
上述降序办法不好。
简单好用的是:A=-sortrows(-A',第几行);A=A';
假如a是一个2*n的矩阵,即两行.- b=a(1,:);
- [c,pos]=sort(b); %pos为排序后的下标,c为第一行的排序结果
- a(2,:)=a(2,pos); %第二行按照第一行排序的下标对应
- a(1,:)=c; %第一行结果重新赋给a 的第一行
a = a( :, pos );
X=magic(5)
X =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> [a,b]=sort(X,2)
a =
1 8 15 17 24
5 7 14 16 23
4 6 13 20 22
3 10 12 19 21
2 9 11 18 25
b =
3 4 5 1 2
2 3 4 5 1
1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
结果解释:
a是原来的矩阵x按照行,每行从小到大重新排列得到的新矩阵。
b告诉你重排的详细信息,也就是做了什么样的变动。
例如b的第一行显示3 4 5 1 2,那么将原矩阵X的第一行的第3 4 5 1 2个元素取出来,顺次排列,就变成a矩阵的第一行。
sort(X,2) 和sort(X,1)分别意思如下举例:A = [ 3 3 5
0 4 2 ];sort(A,1) %纵向排列
ans =
0 3 2
3 4 5sort(A,2) %横向排列
ans =
3 3 5
0 2 4>>A = [-1.9, -0.2, 3.1415926, 5.6, 7.0, 2.4+3.6i];
>>[B1,INDEX] = sort(A)计算结果为:
B1 =
Columns 1 through 4
-0.2000 -1.9000 3.1416 2.4000 + 3.6000i
Columns 5 through 6
5.6000 7.0000
INDEX =
2 1 3 6 4 5由此可知,如果A与另一个矩阵C(char或cell)一一对应,如果用[B1,INDEX] = sort(A)对A进行排序,则可以取得索引INDEX,进而可以查询B1中每个元素与C中哪一个对应。
-
详解Matlab中 sort 函数用法
2021-01-19 15:16:57(1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当...(3)B=sort(A,dim,mode),mode为指定排序模式,mode为”ascend”时,进行升序排序,为”descend “时,进行降序排序. (4)[B,I]=sort(A,…..),I为返回的排 -
matlab中sortindex,matlab中sort函数的用法 | 学步园
2021-04-22 06:26:56help文档中第一句就说明,可以用sort将参量中的元素按升序或降序排列~格式:B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全...help文档中第一句就说明,可以用sort将参量中的元素按升序或降序排列~
格式:
B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素幅值的从小到大排列,若有幅值相同的复数元素,则再按它们在区间[-π ,π ]的幅角从小到大排列;若 A 中有元素为NaN,则将它们排到最后。若 A为向量,则返回从小到大的向量,若A为二维矩阵,则按列的方向进行排列;若A为多维数组,sort(A)把沿着第一非单元集的元素像向量一样进行处理。
B=sort(A,dim) %沿着矩阵A中指定维数dim方向重新排列A中的元素。
[B,IX]=sort(A); %其中IX是一个大小等于size(A)的数组,其每一列是A中列向量的元素相对应的置换位置记号。
举例:A = [ 3 3 5
0 4 2 ];
sort(A,1) %纵向排列
ans =
0 3 2
3 4 5
sort(A,2) %横向排列
ans =
3 3 5
0 2 4
>>A = [-1.9, -0.2, 3.1415926, 5.6, 7.0, 2.4+3.6i];
>>[B1,INDEX] = sort(A)
计算结果为:
B1 =
Columns 1 through 4
-0.2000 -1.9000 3.1416 2.4000 + 3.6000i
Columns 5 through 6
5.6000 7.0000
INDEX =
2 1 3 6 4 5
由此可知,如果A与另一个矩阵C(char或cell)一一对应,如果用[B1,INDEX] = sort(A)对A进行排序,则可以取得索引INDEX,进而可以查询B1中每个元素与C中哪一个对应。
-
matlab中sort()用法
2017-11-30 20:18:44sort(A)是默认的升序,而sort(A,'descend')是降序排序。 sort(A)若A是矩阵,默认对A的各列进行升序排列 sort(A,dim) dim=1时等效sort(A) dim=2时表示对A中的各行元素升序排列 看下面的例子 >> A...sort(A)若A是向量不管是列还是行向量,默认都是对A进行升序排列。sort(A)是默认的升序,而sort(A,'descend')是降序排序。
sort(A)若A是矩阵,默认对A的各列进行升序排列
sort(A,dim)
dim=1时等效sort(A)
dim=2时表示对A中的各行元素升序排列
看下面的例子
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> sort(A)
ans =
3 1 2
4 5 6
8 9 7
>> sort(A,1)
ans =
3 1 2
4 5 6
8 9 7
>> sort(A,2)
ans =
1 6 8
3 5 7
2 4 9===================
Matlab中给一维向量排序是使用sort函数:sort(A),排序是按升序进行的,其中A为待排序的向量;若欲保留排列前的索引,则可用 [sA,index] = sort(A) ,排序后,sA是排序好的向量,index 是 向量sA 中对 A 的索引。 索引使排列逆运算成为可能。
事实上,这里A ≡sA(index) , [A恒等于sA(index)],这个结论确实很奇妙,而且很有用。不信你排序之后试下键入命令sA(index) ,看看得到的是不是就是排列前的A呢。
=====================
在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可,如 果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A中 项的索引。排序是安升序进行的。
在Matlab中,访问矩阵中的元素,一维用A(1)访问向量A的第一个元素;(下标从1开始);二维用A(1,2)访问A中第一行,第二列的元素。
由于在sort函数的结果中,是安升序排序的,要转换成降序,先用X=eye(n)生成一个n维的单位阵,然后用X=rot90(X)将其旋转为次对角线的单位阵,再用原来矩阵乘以X即可,如要讲A逆序排列采用如下步骤:
X=eye(size(A));
X=rot90(X);
A=A*X;假如a是一个2*n的矩阵,即两行.
b=a(1,:);
[c,pos]=sort(b);%pos为排序后的下标,c为第一行的排序结果;
a(2,:)=a(2,pos);%第二行按照第一行排序的下标对应
a(1,:)=c;%第一行结果重新赋给a 的第一行
以下适用于m*n的矩阵按第一行排序
[ b, pos ] = sort( a( 1, : ) );
a = a( :, pos );=======================
matlab按某一列排序,其他列不变办法
b=sortrows(a,2) %a 为要排序的矩阵。2表示按第几列进行排序,整数代表升序,负数代表降序。
%将矩阵a按照第2列的升序排列,其他列不会作升序排列,而是将跟随着第2列 的变化,保持一一对应。
b=sortrows(a,-3)
%将矩阵a按照第3列的降序排列,其他列将跟随着第3列 的变化,保持一一对应。
data =
1 3 2
7 6 5
4 9 8
sortrows(data,1)
ans =
1 3 2
4 9 8
7 6 5sortrows(data,-1)
ans =
7 6 5
4 9 8
1 3 2Example 1
Sort horizontal vector A:
A = [78 23 10 100 45 5 6]; sort(A) ans = 5 6 10 23 45 78 100
Example 2
Sort matrix A in each dimension:
A = [ 3 7 5 0 4 2 ]; sort(A,1) ans = 0 4 2 3 7 5 sort(A,2) ans = 3 5 7 0 2 4
Sort it again, this time returning an array of indices for theresult:
[B, IX] = sort(A, 2) B = 3 5 7 0 2 4 IX = 1 3 2 1 3 2
Example 3
Sort each column of matrix A in descendingorder:
A = [ 3 7 5 6 8 3 0 4 2 ]; sort(A,1,'descend') ans = 6 8 5 3 7 3 0 4 2
This is equivalent to
sort(A,'descend') ans = 6 8 5 3 7 3 0 4 2
-
matlab中sort函数的用法
2016-01-03 10:44:42help文档中第一句就说明,可以用sort将参量中的元素按升序或降序排列~ 格式: B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A ... -
**matlab中sort函数**
2018-11-07 09:11:511、排序函数sort(): 对向量、矩阵、数组的元素进行升序排序或降序排序。...Y=sort(X)是默认的升序,而sort(X ,‘descend’)是降序排序。 (2)Y=sort(X,DIM,MODE) 参数DIM表示对哪一个维数进行排序; 例如... -
MATLAB中排序函数sort()的用法
2019-03-31 15:47:02MATLAB中排序函数sort()可以对参数的元素进行升序排序或降序排序。 具体的用法如下: Y=sort(X) sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对... -
MATLAB中的sort用法
2018-04-13 22:31:05sort(A)若A是矩阵,默认对A的各列进行升序排列sort(A,dim)dim=1时等效sort(A)dim=2时表示对A中的各行元素升序排列看下面的例子 >> A=magic(3)A =8 1 63 5 74 9 2>> so... -
MATLAB中的sort函数
2017-03-12 17:14:31sort的函数功能:把数组元素按升序或降序排列 使用方法 1) B = sort(A) 把数组A沿不同维度上的元素按照升序排列。 如果A是向量,sort(A) 对A中元素按照升序排列。 如果A是矩阵,sort(A) 对A按每一列元素... -
Matlab中的sort函数
2018-03-24 15:46:18sort函数主要用于对矩阵或者是向量进行升序或者降序排列。(默认升序)语法:a.对于矩阵SORT(X)按升序排列X的每一列。 b.对于向量,SORT(X)按升序对X的元素进行排序。 c.对于N-D数组,SORT(X) 沿着X的第一个非单元素... -
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) ... -
5.matlab 中的sort
2018-05-07 10:07:38(1)sort的功能就会排序默认情况使用升序sort (X,DIM,MoDE)x是排序的变量DIM是维度,也就是依据那个维度排序MORE是排序的方向: ascend 升序 descend降序(2)使用(ans,Index) = sort(x)... -
matlab(将数组按照x降序排列)
2019-10-27 08:23:29主要是在扫描线提取过程中,要分别对左top点和右top点进行提取,由于是划分左右2个区域的,所以要对扫描线数组进行按序排列。 具体的matlab代码如下 %调整原来的顺序,按照x从小到大来排序。 x1=t(:,1); [x1,... -
matlab中sort(),atan2(y,x),normrnd(),boxplot()函数,cell数组用法学习
2019-05-31 07:08:591.Y=sort(X,DIM,MODE) ...参数MODE表示按哪一种模式进行排序,当MODE=‘ASCEND’的时进行升序排序,当MODE=‘DESCEND’时,进行降序排序。 [Y,I] = sort(X,DIM,MODE),I返回索引序列,它表示... -
Matlab 用sort函数排序 二维数组
2015-03-04 20:39:01在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可, 如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序... -
MATLAB 之sort()函数和sortrows()函数
2018-04-09 17:08:39sort():对一维向量进行排序 sortrows():对按某一列数值,改变矩阵中整行的排列位置 p=sortrows(matrix,Row) %matrix 为要排序的矩阵。Row表示按第几列进行排序,整数代表升序,负数代表降序。... -
Matlab自带排序函数sort用法
2017-06-02 14:13:28Matlab自带排序函数sort用法 [Y,I] = sort(X,DIM,MODE) sort函数默认Mode为'ascend'为升序,sort(X,'descend')为降序排列。 sort(X)若X是矩阵,默认对X的各列进行升序排列 sort(X,dim) dim=1时等效... -
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()
2019-01-01 15:05:06sort(A)不管是列还是行向量,默认都是对A进行升序排列,而sort(A,'descend')是降序排序。 2、A为矩阵 sort(A),默认对A的各列进行升序排列 sort(A,dim, 'descend') dim = 1时等效排序(A) dim = 2... -
Matlab中各函数作用备份
2018-04-10 14:52:49sort()sort(A)若A是向量不管是列还是行向量,默认都是对A进行...sort(A)若A是矩阵,默认对A的各列进行升序排列 sort(A,dim) dim=1时等效sort(A) dim=2时表示对A中的各行元素升序排列[ ]方括号的使用S为矩阵,则S... -
MATLAB中的排序函数
2013-09-15 08:12:53全英文帮助没看懂。sort函数其实就是个排序函数。 =============================================...sort(A)是默认的升序,而sort(A,'descend')是降序排序。 sort(A)若A是矩阵,默认对A的各列进行升序排列 sort