![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=1739138262-u6kujt9ZJNGfPqQVAoPQBDj7W2Y3sOP2-0-631903a35bd3560cad1beda658e4e7ed)
例1-32: 矩阵元素的引用。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/31_04.jpg?sign=1739138262-Y51gOy5nADcY9v40f1uReyO1J4Jte8ps-0-77a5fb005e7216f4a96641850725f8cc)
表1-28 矩阵元素修改命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_01.jpg?sign=1739138262-3bolplC0CAY6U9kFn67F4sNP19eRCego-0-5a7aa7dfe86fcd631f7e319c79f03675)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_02.jpg?sign=1739138262-ndmWn11xoAqQsztG8FMgUgkoJEHPcdFB-0-13f13b365e49fecda01e8da4de9a43ed)
例1-33: 扩充矩阵。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_03.jpg?sign=1739138262-NxUdLi5A42bRkbKbb69X29XUmYjp3fws-0-d16175d3eb3ee203a339ed58310f9089)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/32_04.jpg?sign=1739138262-iw7xJxsVHXMXH4bVqFpgOusWgpUPImgT-0-f0360603f46bc9549e2177cf39d8a282)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/33_01.jpg?sign=1739138262-vwDU7gNSp5xliF4iYHchBlqLFdTQnV0V-0-add109ed457c7191b6020573e7a19eba)
不但矩阵元素可以引用修改,矩阵的维度和方向也可以进行变换,常用的矩阵变维命令见表1-29。
表1-29 矩阵变维命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_01.jpg?sign=1739138262-OVyerPlnEBxHlSyQPDr8ATZ58pE0JOTp-0-8e3320228a011d5325897fdadf931695)
1.矩阵的旋转
在MATLAB中,rot90命令用于将数组旋转90°,该命令的格式与说明见表1-30。
表1-30 rot90命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_02.jpg?sign=1739138262-KY5k8pOVakdibkjVUIZrKFD04k2b4L1o-0-e0a1a098bb58ec4b0ecd84245e661a18)
例1-34: 旋转矩阵示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_03.jpg?sign=1739138262-TOimzodYFR9xypAoCgbm2RKeKP814TWm-0-b020b1abdd781d1e6c51963d25d4030a)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_04.jpg?sign=1739138262-yLVzGr7GoOKnhzsayvKe3KaDnClQ1mUg-0-0aac72e32ab0644c4b6ced8c875d1bb5)
2.矩阵的镜像
在MATLAB中,flip命令用于镜像矩阵,翻转矩阵元素,该命令的格式与说明见表1-31。
表1-31 flip命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_05.jpg?sign=1739138262-MUTciIhRgjcFbm3gmuEiUd6TR8BNnFRB-0-e53aa0fd162a3638493d7164ef6dc484)
数组的镜像变换实质是翻转矩阵元素的操作,分为两种,包括左右翻转与上下翻转。
◆ flip(A,1)将翻转每一列中的元素。
◆ flip(A,2)将翻转每一行中的元素。
例1-35: 数组上下翻转示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_06.jpg?sign=1739138262-UwJrHxHBWdD5i0CKq1wi1YRyAsqn2jnZ-0-1a660884141656dfd813842b902ca791)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/34_07.jpg?sign=1739138262-9qIEhpTVXZaGQaLGEYGuBvvy5moXMfiF-0-f4eeac3fabfa77b9d10319a83179b260)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_01.jpg?sign=1739138262-2QrBy7glGedeafxYOr47mwdLTgQMOAKe-0-aaf3eea28ffeeefa01206fa0a08b2c09)
在MATLAB中,还包括专门的左右翻转与上下翻转命令,下面分别进行介绍。
(1)左右翻转
使用fliplr函数将矩阵中的元素左右翻转,调用方法如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_02.jpg?sign=1739138262-FiODX1Tfk3Qcy8r9ua6vMjn1eThusV2x-0-4a01d641171f9d1b4c11624a4da3f112)
例1-36: 矩阵左右翻转示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_03.jpg?sign=1739138262-hKpnUR7KfikeXWzXaJjqYPSNVz05HCpw-0-1367ecf9c88edfaa51431df75c50f295)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/35_04.jpg?sign=1739138262-aKCajtVbX5MPPLRjDVgu6qiKggusQjM4-0-7a9f50da92917a17590fa44764a1d85e)
(2)上下翻转
使用flipud函数将矩阵中的元素左右翻转,调用方法如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_01.jpg?sign=1739138262-VNePOtpzFiUqNmgc6QdqkrTjVn3IiOw3-0-9b24b2bed5f06b5dacab2dd58fdf0f1b)
例1-37: 矩阵上下翻转示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_02.jpg?sign=1739138262-FHiCxMnFmExJD5IOAnB0N6Qkm2sOtYlU-0-b45688b370fdb89988be91727a8633bb)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_03.jpg?sign=1739138262-NIJHaoSE2BlQZm9wW6DpOJ8WBf8VREC3-0-84632f65f15bd68944f55199fe8af8a4)
例1-38: 矩阵的变维示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_04.jpg?sign=1739138262-YBlPzuyp3uUS7bWSWRz0WMJrrHqCFYHq-0-aded9c481cd2a931c2929fe6db09d5a0)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_05.jpg?sign=1739138262-m1ChAJZEEnnUcL5TqPKysWWQ6lsPYkCb-0-84a0071834dc67e6d43fe33da5469ef3)
例1-39: 矩阵串联与变向示例。
解: 在MATLAB命令窗口中输入以下命令。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_06.jpg?sign=1739138262-0zzJ3zgjY9SLUPJpGiypytq97DYa2skj-0-048fad5ad6636e515ddb9af1846ab607)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/36_07.jpg?sign=1739138262-V7fyteg9SI9nZGrrRXHXdamGMQomPP3c-0-5e7e2c3e58c872133f792f20bf1404dd)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/37_01.jpg?sign=1739138262-Tgs4i94twKml9UwCIFgOSp4P3j6b6B1Q-0-de9a27e8d6dd1ce74da3295d2d60456d)
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=1739138262-qbMQxCeMViNrdKL5QkRxBfEDfmAfJMZs-0-2eb79ec58cf2ab8f8857a754fbbf6ddc)
在MATLAB中,isbanded命令用于矩阵是否位于特定的下带宽和上带宽范围内,该命令的格式与说明见表1-33。
表1-33 isbanded命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/37_03.jpg?sign=1739138262-rFumDXSvzmCo9Xnqx7jIDJmxCEExRyDv-0-b4dfa3a9038ba45909ee035fa0929f0a)
例1-40: 矩阵带宽示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/37_04.jpg?sign=1739138262-znMgMAyubKtTFnPfVoiRu8mcous4238A-0-97ef51df56f8a00d3c61e3af9dae633a)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_01.jpg?sign=1739138262-sInaeYK7cUXReFc1NGQW2HESRedZ9uwB-0-5863e066cf86c0c5511c211c5b7929b0)
1.3.4对角矩阵
对矩阵元素修改的特例包括对角元素和上(下)三角阵的抽取。在MATLAB中包括专用的命令。
1.对角矩阵
n阶矩阵显示格式如下
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_02.jpg?sign=1739138262-yTg33S4jnJsK8UYF0gYC3V0CzlP8ngBz-0-4b4fb1eb333f83f9aa5778493f7041b6)
则称该矩阵为对角矩阵。两个对角矩阵的和是对角矩阵,两个对角矩阵的积也是对角矩阵。
对于矩阵A∈Cn×n,所谓的矩阵对角化就是找一个非奇异矩阵P,使得
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/38_03.jpg?sign=1739138262-oxSBLtQy1TOvOtYG7Z1ItupQa0na7MH5-0-6164fedf41fd9d4493d7027bd1bd0207)
其中,λ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=1739138262-09epgLtKbXCEJM9HwdFDLvRI1tFiCITm-0-2c527d222b7dd6807898f700198192d5)
其中,λ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=1739138262-c76mf9mFJt9DcR1zo0qJ1VdFXloaOpPx-0-e4fe631d1b8a30458d884349bb41aab8)
图1-1 主对角元素
表1-34 diag命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_01.jpg?sign=1739138262-8aqAWsomhrWYK0ckRSAGOudLDsRezV33-0-8cbcaddf61b50b3bfd9f58ef1a547797)
在MATLAB中,isdiag命令用于确定矩阵是否为对角矩阵,该命令的格式与说明见表1-35。
表1-35 isdiag命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_02.jpg?sign=1739138262-6xBZKxa17njFu3PXdTUAiUZyjksYSXes-0-e51fbd9937a84b01f8e7faa1d4945006)
例1-41: 矩阵对角线抽取示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_03.jpg?sign=1739138262-IkJj3LEo7o4POUM5HqSiSbU5klG79ZFX-0-003fa04616206c9e08c804d4949193ce)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_04.jpg?sign=1739138262-X1TLOnCf7UU7FpL38hfiiRxYuCm9Fybt-0-5b84e73b5007b633edac9fee6e5c09f2)
2.上对角矩阵
在MATLAB中,triu命令用于抽取矩阵的对角线上三角部分的元素,下三角元素使用0替代,组成上对角线矩阵,如图1-2所示,该命令的格式与说明见表1-36。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_05.jpg?sign=1739138262-2qcmfTHXCjVRJnz51yNuFPrHDhMbDuky-0-b0e36124d2efe55e029e084484add62f)
图1-2 上三角矩阵转换
例1-42: 上对角矩阵示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/39_06.jpg?sign=1739138262-MnUa1XCmElzjWoNgvQgMwH1gDtHHOR8N-0-1a2b6c1767dd4d445b9951a5b7c61b64)
表1-36 triu命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_01.jpg?sign=1739138262-rvTShLpYgMK5Y329Q4zvY3CzoLYOT7DG-0-3383253eead755bc0f90e178dc43d4c6)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_02.jpg?sign=1739138262-LMU5og6dVzCLdBLMkXrsTaIIkyOuRBQW-0-fe27ba02e2618a7972f9c54d79f6af08)
在MATLAB中,istriu命令用于确定矩阵是否为上三角矩阵,该命令的格式与说明见表1-37。
表1-37 istriu命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_03.jpg?sign=1739138262-dRwDS2se1Mid6CpkWD8O1uqALcMCfkJM-0-dbb4ce1e6a773b568abecb583a68dbbd)
例1-43: 上三角矩阵示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_04.jpg?sign=1739138262-aoNCMiEeQBLGPRb29I7XN924TUknGpCL-0-8a015d0d7cd7096cd76c505401cbc853)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_05.jpg?sign=1739138262-qqp1U2Ij2SVNLXLdvPXD8ttFHnYKiafM-0-0540b384ece1a9f2284035fb1a45501e)
3.下对角矩阵
在MATLAB中,tril命令用于抽取矩阵的对角线下三角部分的元素,其余部分用0替代,组成下对角线矩阵,如图1-3所示,该命令的格式与说明见表1-38。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/40_06.jpg?sign=1739138262-f4hn1uQnmkvb94qGNJ6MYRgKMfYFW4PO-0-95354c433d0f9d10e231da04d8326b57)
图1-3 下三角矩阵转换
表1-38 tril命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_01.jpg?sign=1739138262-eeJhKxzYoRsbprhkfWCFESVPHWZIzh7H-0-37b24d7122a1a45b9daf746196ef781b)
在MATLAB中,istril命令用于确定矩阵是否为下三角矩阵,该命令的格式与说明见表1-39。
表1-39 istril命令
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_02.jpg?sign=1739138262-QTCwJlOdX5RgCboVTzCUvFNEaeN0Ya4R-0-7a089589f162c218f1d1450268c37649)
例1-44: 下三角矩阵示例。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_03.jpg?sign=1739138262-C0cQFwpbYmJUSEu9lhpacXrswb2txtl0-0-caa5de37f1271b203565223e4876593c)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/41_04.jpg?sign=1739138262-1iJHcyj4ELTkx68eElnqdX25hsztmU6g-0-b6f2c1b2e3b6a97f27e5322d378e50c6)