3.3 矩阵元素的运算(2)
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)时,函数的返回值是空矩阵。