2.2 操作数值数组 |
|
在MATLAB中,除了需要创建数组之外,还需要对数组进行各种操作,包括重组、元素变换、提取、旋转等操作,MATLAB都提供了对应的函数命令,本节中将以简单的实例来说明这些命令的使用方法。由于数组维度的不同将会带来MATLAB不同的操作要求,因此,将按不同的数组维度来讨论数组的操作。
低维数组的操作比高维数组的操作在运算或者使用上要简单,因此在本节中将首先使用实例来介绍如何操作低维数组。
例2.8 使用diag命令来选取对角元素或者创建矩阵。
在MATLAB的命令窗口中输入以下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:
从结果中可以看出,diag命令的功能可以是选取矩阵对角线的数组,也可以将某个数组创建矩阵,用户可以很方便地利用该命令来处理矩阵对角线的数据。
对于diag命令中参数k的含义,可以用图2.1来形象地说明。
图2.1 diag命令中参数k的含义
例2.9 对数组或者矩阵进行形式转换:对称变换和旋转。
在MATLAB的命令窗口中输入如下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:
这段代码中演示了各种转换命令,下面简要介绍各种命令的含义。
◆ fliplr: 以数组的垂直中线为对称轴,交换左右对称位置上的数组元素。
◆ flipud: 以数组的水平中线为对称轴,交换左右上下对称位置上的数组元素。
◆ rot90: 逆时针旋转二维数组90°。
例2.10 选取数组上三角或者下三角矩阵。
在MATLAB的命令窗口中输入以下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:
在上面的步骤中,tril命令的功能是提取矩阵的下三角矩阵,triu命令的功能在于提取矩阵的上三角矩阵,两个命令中的参数k的含义和diag命令相同。
例2.11 演示Kronecker乘法的不可交换性。
在MATLAB的命令窗口中输入以下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:
从结果中可以看出,对于相同的两个矩阵,交换后的乘积是不同的结果,因此就证明了Kronecker乘法的不可交换性。关于Kronecker乘法,请读者自行查阅相应的书籍。
对于高维数组,由于在结构上多了维度,因此在操作方法上多了一些操作其他维度的命令,在本节中还是以简单的实例来介绍这些函数的使用方法。
例2.12 对三维数组进行对称交换。
在MATLAB的命令窗口中输入以下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:
在MATLAB中,flipdim(A,k)命令的第一个输入变量A表示的是被操作的数组,第二个输入变量k指定的是对称面。1表示的是与数组行平行的平分面,2表示的是与数据列平行的平分面,3表示的是与数据页平行的平分面。
例2.13 对三维数组进行“维序号移动”。
在MATLAB的命令窗口中输入以下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:
例2.14 对三维数组进行广义共轭转置。
在MATLAB的命令窗口中输入以下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:
在MATLAB中,permute命令的第一个输入变量是被转置的数组,第二个变量表示的是转置方式的行数组,该行数组中元素位置号代表的是新数组的维序号数值。
例2.15 使用squeeze命令来撤销“孤维”,使高维数组降维。
在MATLAB的命令窗口中输入以下代码:
查看程序结果。在命令窗口中输入变量名称,可以得到如下结果: