![MATLAB 2020数学计算从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/840/43806840/b_43806840.jpg)
1.3.3 矩阵元素函数
矩阵建立起来之后,还需要对其元素进行引用、修改。表1-27列出矩阵元素的引用格式,表1-28列出了常用的矩阵元素修改命令。
表1-27 矩阵元素的引用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/31_03.jpg?sign=1739692522-4dPdNCJtmWtHjKOeJPaAqPmlmdkfbkwa-0-9c972093dda7c6f7eaa6080764a7c11c)
例1-32: 矩阵元素的引用。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/31_04.jpg?sign=1739692522-du1tf8MDhoXGNGrw55WNYHsNULCDLRmQ-0-941c49d1188f6f5812f2df85aa80fecf)
表1-28 矩阵元素修改命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_01.jpg?sign=1739692522-OkK0eSQPOmcBpPbeq0T4TyCEw1B0HDV6-0-9030d082f9ad547b77d4422e92004aa6)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_02.jpg?sign=1739692522-8sDa2jS8nNMtghaj0EB42mVw9KJYbYzg-0-5b015b418d41c59345400748925f702a)
例1-33: 扩充矩阵。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_03.jpg?sign=1739692522-J20aC6ah18mpxbWuX766xsltr39SDv87-0-9833ad30dbd1048dcf6b91961214b466)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_04.jpg?sign=1739692522-Hfg5qFpbTkZCrc220Za3Mx8ccCun7WvX-0-ca83dd52a661e0512e2cdda9d35ba780)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/33_01.jpg?sign=1739692522-dMgTgTGFihsETAbFUEHMjuHM7XRA3Tg3-0-63d0d481e3cf8fb569304fefb5439a1b)
不但矩阵元素可以引用修改,矩阵的维度和方向也可以进行变换,常用的矩阵变维命令见表1-29。
表1-29 矩阵变维命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_01.jpg?sign=1739692522-OODkxZf4f43xJ66sKmuJGr1iC2aVX0UC-0-365e7f0284c94487ac9d773d820a74d5)
1.矩阵的旋转
在MATLAB中,rot90命令用于将数组旋转90°,该命令的格式与说明见表1-30。
表1-30 rot90命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_02.jpg?sign=1739692522-VK8KNHj7ZkFvBrE6ECI2ANcyetAn5Qvu-0-f4e7496d432ada46df14b8fbabee07d0)
例1-34: 旋转矩阵示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_03.jpg?sign=1739692522-OkGCZ6tvoMDYlqTBxDfhYPhKElEJOhsK-0-860d72956d57eb12454bb49e40b8a4c0)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_04.jpg?sign=1739692522-qWtFyJ1NyWIOCXnSTmoi05I87NbDXGkA-0-cf5cfa28a33014cd9ae5b73bb566ec16)
2.矩阵的镜像
在MATLAB中,flip命令用于镜像矩阵,翻转矩阵元素,该命令的格式与说明见表1-31。
表1-31 flip命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_05.jpg?sign=1739692522-AtlGANYMaZFJRHbiFNiEfKUALskY7wgX-0-71f7d613900618c43b5e2910c7ad83c1)
数组的镜像变换实质是翻转矩阵元素的操作,分为两种,包括左右翻转与上下翻转。
◆ flip(A,1)将翻转每一列中的元素。
◆ flip(A,2)将翻转每一行中的元素。
例1-35: 数组上下翻转示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_06.jpg?sign=1739692522-2c2Rl7E178CRES1rF9eCVuvyJxTvwg3I-0-63b853ddc1f2383753fdd515f2a5bb3c)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_07.jpg?sign=1739692522-VbAUVBDU6IcU8hXMboyVt0ru2JByGxM7-0-f3962566a93a01f37e746cf836b38af2)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_01.jpg?sign=1739692522-CxlQ8VQGDv5Ivx5UXxV7RFBdXu6iu7b1-0-88a7c6908de721e9e78eae255a132b46)
在MATLAB中,还包括专门的左右翻转与上下翻转命令,下面分别进行介绍。
(1)左右翻转
使用fliplr函数将矩阵中的元素左右翻转,调用方法如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_02.jpg?sign=1739692522-2YJDpomFwL017kNIqUfpFQuWyRPetDc1-0-abee10c6ca986453e4224bfcfcccc698)
例1-36: 矩阵左右翻转示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_03.jpg?sign=1739692522-64PEuCHtgFqF1oGM2FThPR2DIZw5Mqit-0-0963a16f5259fab3b051487276140c1a)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_04.jpg?sign=1739692522-PZsd2LF4rfzA0EdrvUYzkmCYuSPGBvzV-0-f635c5db37e38e3668868a73e8f635a1)
(2)上下翻转
使用flipud函数将矩阵中的元素左右翻转,调用方法如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_01.jpg?sign=1739692522-XedsktpXZXXo0fiCEpd0XGfkBsCJ7U96-0-e6a18ea988b9603ebb4eafe054946747)
例1-37: 矩阵上下翻转示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_02.jpg?sign=1739692522-dl5r8R4KvBRlYSLgtLDePRz1rTnU0okN-0-c95abb0f140cf5e5a764f36ffa77fd2c)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_03.jpg?sign=1739692522-xDBKmnIOTMvnGknaCzlACinmZzQsJkbn-0-0e7074f4b6c3a4ac11c132bfbe8ed957)
例1-38: 矩阵的变维示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_04.jpg?sign=1739692522-52e8fjjDgfMZU2XoDFU8GWX9bZrR0YHc-0-b9d540575d536ade6b8e2939ab31e6ea)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_05.jpg?sign=1739692522-VxvrGUZryfYab0kUDQoQVkpxjATfaAv0-0-0a36a670782e8ebe9d8a0733ac16a60c)
例1-39: 矩阵串联与变向示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_06.jpg?sign=1739692522-VawLfghWFPctlY6P9UfLnBGGE8WuTxB5-0-b0fb16e78a402b46c27174dd86e97b46)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_07.jpg?sign=1739692522-RHym38wJu5sz67zN2Ep3UKMlpukm71qB-0-2899ff5f5614b31805aea202f6333873)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/37_01.jpg?sign=1739692522-oCInlVFdbO1bL6tul7g4gTkIjG7W4kFS-0-6b9bcf17cccf4522efe4d40f471c3301)
3.矩阵带宽
矩阵带宽是显示器视频放大器通频带宽度的简称,凡电子电路都存在一个固有的通频带。带宽越宽,响应速度就越快,允许通过的信号频率越高,信号失真越小。
矩阵的上带宽和下带宽是通过求包含非零值的最远一个对角线(分别在主对角线上方或下方)测得的。
对于包含元素Aij的矩阵A:
上带宽B1是最小数,这样无论何时j-i>B1,Aij=0。
下带宽B2是最小数,这样无论何时i-j<B2,Aij=0。
在MATLAB中,bandwidth命令用于得到矩阵的上下带宽,该命令的格式与说明见表1-32。
表1-32 diag命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/37_02.jpg?sign=1739692522-o7ttv7bEitAKrzgssXiB5KDqpW1ImSHy-0-77714c9de15f13acda3dc8ac6cfad848)
在MATLAB中,isbanded命令用于矩阵是否位于特定的下带宽和上带宽范围内,该命令的格式与说明见表1-33。
表1-33 isbanded命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/37_03.jpg?sign=1739692522-qDeKg2POwX0aDKpLLYcI0oE5wSNeyzTK-0-fa344f1125206545ce51341e3e04cada)
例1-40: 矩阵带宽示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/37_04.jpg?sign=1739692522-jAO7LWUlnYYFoTyAW7MroQmvIqzy7Efb-0-a1315b41f2b8db8774f3ef4c5eb68864)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_01.jpg?sign=1739692522-0Jtuiz9uCfmoTIKz4aFif4kN1eTOC3RC-0-dc934176e6b7cc8e5c43d53c0a2c7ab5)
1.3.4对角矩阵
对矩阵元素修改的特例包括对角元素和上(下)三角阵的抽取。在MATLAB中包括专用的命令。
1.对角矩阵
n阶矩阵显示格式如下
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_02.jpg?sign=1739692522-iuOKEZxQwQXkjyOMHODJqXlqcF2UzcNy-0-02cba59beda93896073da29c20366250)
则称该矩阵为对角矩阵。两个对角矩阵的和是对角矩阵,两个对角矩阵的积也是对角矩阵。
对于矩阵A∈Cn×n,所谓的矩阵对角化就是找一个非奇异矩阵P,使得
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_03.jpg?sign=1739692522-LTPAs7Zj10EhxSLgOvxGyf4rnuycOTeQ-0-0dfe6c646299a222f9c810200fc972f6)
其中,λ1,…,λn为A的n个特征值。
矩阵对角化在实际中可以大大简化矩阵的各种运算,但不是每个矩阵均可进行对角化转换,因此判断矩阵是否可以进行对角化转换是首要步骤。
◆ 定理1:n阶矩阵A可对角化的充要条件是A有n个线性无关的特征向量。
◆ 定理2:矩阵A可对角化的充要条件是A的每一个特征值的几何重复度等于代数重复度。
◆ 定理3:实对称矩阵A总可以对角化,且存在正交矩阵P使得
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_04.jpg?sign=1739692522-R7X4kaUJpYtJMJmRnfP9EqRBFl7vKtRd-0-98e76fc3aa504d21ecca60d40f32890b)
其中,λ1,…,λn为A的n个特征值。
对于矩阵,斜对角上的元素是主对角线元素,如图1-1所示,包括a11,a22,…,amn。
在MATLAB中,diag命令用于抽取矩阵的对角线上的元素,组成对角线数组,该命令的格式与说明见表1-34。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_06.jpg?sign=1739692522-lZDVxVDmhaezl2SQmNoLVAFxzPKBcLrj-0-b0041d915cb004e052a2e73b1240884a)
图1-1 主对角元素
表1-34 diag命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_01.jpg?sign=1739692522-cbITuBVMgA2MCvJOy7dCkoMeZQLD6Omv-0-2a9d559fb3a80488babdccddf6e5f70e)
在MATLAB中,isdiag命令用于确定矩阵是否为对角矩阵,该命令的格式与说明见表1-35。
表1-35 isdiag命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_02.jpg?sign=1739692522-U0L3AKsxWAapLPpxaQKBbr0NIo0OihIc-0-1f9a68f1e34618ed19cc3d3c93324c7f)
例1-41: 矩阵对角线抽取示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_03.jpg?sign=1739692522-6ELzpIJDxY9xllAdeaZ8MRoZ7O3wnOU9-0-cc5b2fdb94e44fc1423de97b518e41c7)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_04.jpg?sign=1739692522-wF1qzxPI5TiUEuhkHX7MPXqVhgvuIHJr-0-2a10e265f311b4349a64c4e5db929ae0)
2.上对角矩阵
在MATLAB中,triu命令用于抽取矩阵的对角线上三角部分的元素,下三角元素使用0替代,组成上对角线矩阵,如图1-2所示,该命令的格式与说明见表1-36。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_05.jpg?sign=1739692522-iXfDID2TXM6LBLWktaSI3nZqyTkS5oVS-0-a51c0ec59cadfc475bbbf0877b1f2437)
图1-2 上三角矩阵转换
例1-42: 上对角矩阵示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_06.jpg?sign=1739692522-h7968szeJEky6ICrgMSCnIVc2cxlZMBl-0-8ccfbd2338d41759b60dfe114bc26e0f)
表1-36 triu命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_01.jpg?sign=1739692522-s7uLCCoypVne8cDhZjqgVqvaTZE9bxjG-0-1a1aee04e21719ed5ed542d1a729fa99)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_02.jpg?sign=1739692522-5Rfvqc21fiYPKttyu4rVYzhZdQB6GtM5-0-61b1cb9c83bddd795eb8cc299f67de6b)
在MATLAB中,istriu命令用于确定矩阵是否为上三角矩阵,该命令的格式与说明见表1-37。
表1-37 istriu命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_03.jpg?sign=1739692522-nknZThlIvZMmwIeFUZBxU6CwnhroRae0-0-a96c38809d6f14df0e44068d6766c4ae)
例1-43: 上三角矩阵示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_04.jpg?sign=1739692522-oLQepOVq7M9hfsKhIlnyxBNWqejQHem2-0-c23a08d77ad09a15af4a9b8ca03ca4b4)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_05.jpg?sign=1739692522-lUsUD37jQL724mAXswsN0SvwIAne2MVo-0-4410d8ac58ab3201ed2563c89a21bcbc)
3.下对角矩阵
在MATLAB中,tril命令用于抽取矩阵的对角线下三角部分的元素,其余部分用0替代,组成下对角线矩阵,如图1-3所示,该命令的格式与说明见表1-38。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_06.jpg?sign=1739692522-Qa5NxbbGcgXfUAHhdPuEBqhNEi182G73-0-57195107b8d88598b412ef595e9c77eb)
图1-3 下三角矩阵转换
表1-38 tril命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_01.jpg?sign=1739692522-Nxu8tRPCK2csyfRMEGWnyAIXBOvrGXCC-0-632e6c625041441706750ccadcd92360)
在MATLAB中,istril命令用于确定矩阵是否为下三角矩阵,该命令的格式与说明见表1-39。
表1-39 istril命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_02.jpg?sign=1739692522-r3Zte78WjDZXIbyWRlFoUDJcAvISUS0w-0-732640cd38b4fb917f3a9fd1c4de1ad8)
例1-44: 下三角矩阵示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_03.jpg?sign=1739692522-gESvwZunZS7Qj4T1ZVEDOHBwypfelcSf-0-dc2d76631be4ba13dd0aadc0f7b4e870)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_04.jpg?sign=1739692522-SS4ak6aVEEzABG5sfQYAjxGi6Jz0W3px-0-e9d468f855f0e83437e05ba0ade87197)