MATLAB學習筆記(二)——主要是MATLAB的矩陣知識


PS:主要是講解矩陣的相應的實現方法,其實MATLAB的很大一部分的優勢,就是集成了矩陣級別的運算,並以此為特點,可以進行多維空間上的驗證。

       讓我們懂得了原來線性代數如此有用= - =。

(一)MATLAB矩陣

一、矩陣的建立

1、直接輸入法創建:

image

       還可以有復數矩陣的建立,有兩種方法:

    (1)直接按照直接輸入法來建立矩陣,但是元素可以直接打成復數的形式(a+bj)

    (2)還有就是分別建立一個實部還有一個虛部的矩陣,然后通過(a+bj)就可以得到。

2、M文件建立矩陣

      就是把建立的矩陣存在一個文件里,下次直接調用就可以了。然后方法如下(下一篇日志會敘述)

image

image

3、利用冒號表達式建立一個向量

(1)e1:e2:e3

    其中e1為初始值,e2為步長,e3為終止值(只取到小於或者等於終止值就可以了),

    如果e2省略,那么默認步長為1;

(2)lidspace(a,b,n)

    a,b是生成向量的第一個和最后一個元素,n是元素總數。

4、建立大矩陣(由方括號中的小矩陣或者向量組合起來)

image

5、通過MATLAB集成的交互界面進行創建(最快)

(1)找到新建變量,並單擊

image

(2)然后就可以進行新建變量了

image

        1處可以改變變量名字,2處可以進行矩陣的輸入,3處可以查看矩陣在內存中是否保存,沒有的話請按Ctrl+s。

二、矩陣的拆分

1、矩陣元素

(1)可以直接通過下標進行修改和訪問,如果超過了原來矩陣的維度,會自動擴充,並且未填充的元素置為0。

image

(2)矩陣元素是按照列來存儲,先第一列然后第二列。然后下標和序號可以一一對應,然后由對應的sub2ind和ind2sub求得

image

image

2、矩陣拆分

(1)用冒號表達式來獲得子矩陣

a、a(  : ; j )表示取a矩陣的第j列的全部元素;同樣的a(i;:)表示取a矩陣第i行的全部元素。也可以直接飲用對應下標取單獨的元素。

b、里面可以嵌套冒號表達式,這樣子就可以取出一個小的矩陣。例子如下

image

c、end表示最后一個數。

(2)利用空矩陣刪除矩陣的元素

clear是把變量從空間中刪除,而[]則是賦值成一個空的矩陣。

同樣可以使用引用,進行數組的置空

三、特殊矩陣

1、通用的特殊矩陣:

zeros 產生0的矩陣
ones 產生1的矩陣
eye 產生對角矩陣
rand 產生0~1間均勻分布的隨機矩陣
randn 產生矩陣為0,方差為1的標准正態分布隨機矩陣

image

2、用於專門學科的特殊矩陣

(1)魔方矩陣(每行每列每對角線都相等)

           magic(n): 生成n階的魔方陣。

(2)范德蒙德矩陣

(3)希爾伯特矩陣

           hilb(n)                n階希爾伯特矩陣

           invhilb(n)          n階希爾伯特的逆矩陣

(4)托普利茲矩陣

           toeplitz(x,y)

image

(5)伴隨矩陣

image

image

 

 

(二)MATLAB運算

一、算術運算

1、基本算數運算

(1)加減

(2)乘法

(3)除法

(4)乘方

       這些運算主要都要服從矩陣的運算法則。維度不符合matlab會進行報錯。

2、點運算

       格式是在正常的符號前面加上一個“.”就好了。

       運算的結果就是對矩陣中的每個元素相應的運算就好了,

二、關系運算

1、關系運算符:

< 小於
<= 小於等於
> 大於
>= 大於等於
== 等於
~= 不等於

2、運算法則:

(1)標量對標量:直接進行運算

(2)矩陣對矩陣:每個元素對應進行運算

(3)標量對矩陣:標量對每個元素進行運算

       最后是真的為“1”,假的為“0“。

PS:在這里記下一個求求余數的函數rem

三、邏輯運算

1、邏輯運算符。

image

2、運算法則同上。

PS:運算符的優先級排序:算術>關系>邏輯

3、其他相應的一些邏輯函數(通過名字來記住功能)

image

 

(三)矩陣分析

一、對角陣與三角陣

1、對角陣

(1)提取矩陣對角線上的元素:  diag(A), diag(A,k)

(2)構造對角陣:  diag(A)

       對每行每列進行相同乘數的運算,用對角陣相乘,左乘(對每行進行相乘),右乘(對每列進行相乘)

2、三角陣

(1)上三角陣

    triu(A):將A變成一個上三角矩陣(下半邊為0)

    triu(A,k):將矩陣A的第k條對角線以上的元素

(2)下三角矩陣

    tril(A)

    tril(A,k)

二、矩陣的轉置與旋轉

1、矩陣的轉置

(1)轉置運算符是單撇號(’)

(2)作用就是求轉置,但是請注意不是求逆矩陣。

2、矩陣的旋轉

(1)運算符號:rot(A,k)

      就是將矩陣逆時針旋轉k*90°的角度。如果單單旋轉90°就可以直接省略k這個參數。

3、矩陣的左右翻轉

(1)運算符號:fliplr(A)

4、矩陣的上下翻轉

(1)運算符號:flipud(A)

三、矩陣的逆與偽逆

1、矩陣的逆

(1)定義:A·B=B·A=E,就稱A和B互為逆矩陣。

(2)運算函數:inv(A)

(3)應用:可以用來求解線性方程組

imageimage

2、矩陣的違逆

(1)定義:我們知道在矩陣不是滿秩的時候是沒有逆矩陣的。但是可以找到一個與A的轉置矩陣A`同型的矩陣B,使得滿足矩陣的逆的定義。此時稱矩陣B為矩陣A的違逆。

(2)運算函數:pinv(A)

四、矩陣的行列式

  運算函數:det(A)

五、矩陣的秩與跡

1、矩陣的秩

(1)定義:就是一個矩陣的行數和列數線性無關的數目

(2)運算函數:rank(A)

2、矩陣的跡

(1)定義:就是矩陣對角陣上的元素之和。

(2)運算函數:trace(A)

六、向量和矩陣的范數

1、定義:用來度量矩陣或者向量在某種意義下的長度。

2、向量的3種常用范數以及計算函數

   image

3、范數的三個性質:

(1)非負性

(2)齊次性

(3)滿足施瓦茨不等式(a,b)<=(a,a)(b,b)

4、矩陣的范數及其計算函數

image

image

運算函數同向量的。

七、矩陣的條件數

(1)定義:在求解線性方程組時,如果系數的微小改變會導致最終結果的很大改變,稱系數矩陣為病態矩陣,而不會導致最終結果的很大改變的話,則是良性矩陣,然后條件數便是來衡量這一情況的一個參數。

                條件數等於A的范數與A的逆矩陣的范數的乘積。這樣的話,條件數總是大於1的,如果越接近於1的話,性能越好。

(2)函數為:

image

八、矩陣的特征值與特殊矩陣

image

image

image

 

image

(六)字符串

1、規則:

(1)用單引號括起來就是字符串。

(2)然后字符串可以寫成一個矩陣,但是一個字母是一個元素,所以一定要保證矩陣的維數是正確的。

(3)如果字符串本身有單引號,就要加2個單引號。

(4)較長的字符串可以用字符串向量表示,及用[]括起來。

(八)稀疏矩陣

一、矩陣存儲方式

1、完全儲存方式:就是之前我們使用的方式

2、稀疏矩陣方式:image

二、稀疏儲存方式的產生:

1、將完全儲存方式轉化為稀疏矩陣的方式

(1)A=sparse(S):將矩陣S轉化為稀疏儲存方式的矩陣A

(2)sparse的其他調用方式:

       sparse(m,n):生成一個m*n的所有元素都是0的稀疏矩陣

       sparse(u,v,S):u,v,S是3個等長的向量。S是要建立的稀疏矩陣的非零元素,u,v是行列下標,然后S是相應的元素值。

(3)其他操作的方式:

      [u,v,s]=find(A):返回矩陣A中非零元素的下標和元素。

      full(A):返回和稀疏儲存矩陣A對應的完全儲存方式矩陣。

2、產生稀疏儲存矩陣

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM