购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 操作数值数组

在MATLAB中,除了需要创建数组之外,还需要对数组进行各种操作,包括重组、元素变换、提取、旋转等操作,MATLAB都提供了对应的函数命令,本节中将以简单的实例来说明这些命令的使用方法。由于数组维度的不同将会带来MATLAB不同的操作要求,因此,将按不同的数组维度来讨论数组的操作。

2.2.1 选取低维数组的对角元素

低维数组的操作比高维数组的操作在运算或者使用上要简单,因此在本节中将首先使用实例来介绍如何操作低维数组。

例2.8 使用diag命令来选取对角元素或者创建矩阵。

在MATLAB的命令窗口中输入以下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:

说明

从结果中可以看出,diag命令的功能可以是选取矩阵对角线的数组,也可以将某个数组创建矩阵,用户可以很方便地利用该命令来处理矩阵对角线的数据。

对于diag命令中参数k的含义,可以用图2.1来形象地说明。

图2.1 diag命令中参数k的含义

2.2.2 低维数组的形式转换

例2.9 对数组或者矩阵进行形式转换:对称变换和旋转。

在MATLAB的命令窗口中输入如下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:

这段代码中演示了各种转换命令,下面简要介绍各种命令的含义。

fliplr: 以数组的垂直中线为对称轴,交换左右对称位置上的数组元素。

flipud: 以数组的水平中线为对称轴,交换左右上下对称位置上的数组元素。

rot90: 逆时针旋转二维数组90°。

2.2.3 选取三角矩阵

例2.10 选取数组上三角或者下三角矩阵。

在MATLAB的命令窗口中输入以下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:

说明

在上面的步骤中,tril命令的功能是提取矩阵的下三角矩阵,triu命令的功能在于提取矩阵的上三角矩阵,两个命令中的参数k的含义和diag命令相同。

2.2.4 Kronecker乘法

例2.11 演示Kronecker乘法的不可交换性。

在MATLAB的命令窗口中输入以下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:

说明

从结果中可以看出,对于相同的两个矩阵,交换后的乘积是不同的结果,因此就证明了Kronecker乘法的不可交换性。关于Kronecker乘法,请读者自行查阅相应的书籍。

2.2.5 高维数组的对称交换

对于高维数组,由于在结构上多了维度,因此在操作方法上多了一些操作其他维度的命令,在本节中还是以简单的实例来介绍这些函数的使用方法。

例2.12 对三维数组进行对称交换。

在MATLAB的命令窗口中输入以下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:

说明

在MATLAB中,flipdim(A,k)命令的第一个输入变量A表示的是被操作的数组,第二个输入变量k指定的是对称面。1表示的是与数组行平行的平分面,2表示的是与数据列平行的平分面,3表示的是与数据页平行的平分面。

2.2.6 高维数组的维序号移动

例2.13 对三维数组进行“维序号移动”。

在MATLAB的命令窗口中输入以下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:

2.2.7 高维数组的广义共轭转置

例2.14 对三维数组进行广义共轭转置。

在MATLAB的命令窗口中输入以下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果:

说明

在MATLAB中,permute命令的第一个输入变量是被转置的数组,第二个变量表示的是转置方式的行数组,该行数组中元素位置号代表的是新数组的维序号数值。

2.2.8 高维数组的降维操作

例2.15 使用squeeze命令来撤销“孤维”,使高维数组降维。

在MATLAB的命令窗口中输入以下代码:

查看程序结果。在命令窗口中输入变量名称,可以得到如下结果: j9gMXKiFL1JTw+wOur164O63kwDSKhwYH4OlY8vxrEbAieTgpdKu9OHodz/T+zMc

点击中间区域
呼出菜单
上一章
目录
下一章
×