3.3.6 矩阵元素的排序
MATLAB中函数sort()的作用是按照升序排序,排序后的矩阵和原矩阵的维数相同。其调用格式如下。
● B=sort(A):该函数对矩阵A进行升序排序。A可为矩阵或向量。
● B=sort(A,dim):该函数对矩阵A进行升序排序,并将结果返回在给定的维数dim上按照升序排序。当dim=1时,按照列进行排序;当dim=2时,按照行进行排序。
● B=sort(...,mode):该函数对矩阵A进行排序,mode可指定排序的方式。ascend指定按升序排序,为默认值;descend指定按降序排序。
例3-31:矩阵元素的排序示例。
在命令行窗口中依次输入:
clear all
A = [1 3 0;3 1 0;9 2 4]
B = sort(A) % 矩阵中元素按照列进行升序排列
C = sort(A,2) % 矩阵中元素按照行进行升序排列
D = sort(A, 'descend') % 矩阵中元素按照列进行升序排列
E = sort(A,2, 'descend') % 矩阵中元素按照行进行升序排列
BCDE = [B C;D E]
输出结果:
A =
1 3 0
3 1 0
9 2 4
B =
1 1 0
3 2 0
9 3 4
C =
0 1 3
0 1 3
2 4 9
D =
9 3 4
3 2 0
1 1 0
E =
3 1 0
3 1 0
9 4 2
BCDE =
1 1 0 0 1 3
3 2 0 0 1 3
9 3 4 2 4 9
9 3 4 3 1 0
3 2 0 3 1 0
1 1 0 9 4 2
例3-32:对向量进行排序示例。
在命令行窗口中依次输入:
A = [78 23 10 100 45 5 6]
sort(A)
输出结果:
A =
78 23 10 100 45 5 6
ans =
5 6 10 23 45 78 100
3.3.7 矩阵元素的求和
MATLAB中函数sum()和cumsum()的作用是对矩阵的元素求和。其调用格式如下。
● B=sum(A):该函数对矩阵A的元素求和,返回由矩阵A各列元素的和组成的向量。
● B=sum(A,dim):该函数返回在给定的维数dim上元素的和。当dim=1时,计算矩阵A各列元素的和;当dim=2时,计算矩阵A各行元素的和。
● B=cumsum(A)。
● B=cumsum(A,dim)。
函数cumsum()的调用格式与sum()类似,不同的是其返回值为矩阵。下面通过示例查看两个函数的不同之处。
例3-33:矩阵元素的求和示例。
在命令行窗口中依次输入:
clear all
A = [1 3 0;3 1 0;9 2 4]
B = sum(A) % 矩阵中元素按照列进行求和
C = sum(A,2) % 矩阵中元素按照行进行求和
D = cumsum(A) % 矩阵中各列元素的和
E = cumsum(A,2) % 矩阵中各行元素的和
F = sum(sum(A)) % 矩阵中所有元素的和
输出结果:
A =
1 3 0
3 1 0
9 2 4
B =
13 6 4
C =
4
4
15
D =
1 3 0
4 4 0
13 6 4
E =
1 4 4
3 4 4
9 11 15
F =
23
提示:使用sum(sum())可求出矩阵所有元素的和。
3.3.8 矩阵元素的求积
MATLAB中函数prod()和cumprod()的作用是对矩阵的元素求积。其调用格式如下。
● B=prod(A):该函数对矩阵A的元素求积,返回由矩阵A各列元素的积组成的向量。
● B=prod(A,dim):该函数返回在给定的维数dim上元素的积。当dim=1时,计算矩阵A各列元素的积;当dim=2时,计算矩阵A各行元素的积。
● B=cumprod(A)。
● B=cumprod(A,dim)。
函数cumprod()的调用格式与prod()类似,不同的是其返回值为矩阵。读者可以通过下面的示例查看两者的不同之处。
例3-34:矩阵元素的求积示例。
在命令行窗口中依次输入:
clear all
A = magic(3)
B = prod(A) % 矩阵各列元素的积
C = prod(A,2) % 矩阵各行元素的积
D = cumprod(A) % 矩阵各列元素的积
E = cumprod(A,2) % 矩阵各行元素的积
输出结果:
A =
8 1 6
3 5 7
4 9 2
B =
96 45 84
C =
48
105
72
D =
8 1 6
24 5 42
96 45 84
E =
8 8 48
3 15 105
4 36 72
3.3.9 矩阵元素的差分
MATLAB中函数diff()的作用是计算矩阵元素的差分。其调用格式如下。
● Y=diff(X):计算矩阵各列元素的差分。
● Y=diff(X,n):计算矩阵各列元素的n阶差分。
● Y=diff(X,n,dim):计算矩阵在给定的维数dim上元素的n阶差分。当dim=1时,计算矩阵各列元素的差分;当dim=2时,计算矩阵各行元素的差分。
例3-35:计算矩阵元素的差分示例。
在命令行窗口中依次输入:
clear all
A = magic(3)
B = diff(A) % 矩阵各列元素的差分
C = diff(A,2) % 矩阵各列元素的2阶差分
D = diff(A,1,1) % 矩阵各列元素的差分
E = diff(A,1,2) % 矩阵各行元素的差分
输出结果:
A =
8 1 6
3 5 7
4 9 2
B =
-5 4 1
1 4 -5
C =
6 0 -6
D =
-5 4 1
1 4 -5
E =
-7 5
2 2
5 -7
提示:当参数n ≥ size(x,dim)时,函数的返回值是空矩阵。





