Matlab矩陣運算_第1頁
Matlab矩陣運算_第2頁
Matlab矩陣運算_第3頁
Matlab矩陣運算_第4頁
Matlab矩陣運算_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Matlab 矩陣運算說明:這一段時間用 Matlab 做了 LDPCB 的性能仿真,過程中涉及了大量的矩陣運算,本文記錄了 Matlab 中矩陣的相關(guān)知識,特別的說明了稀疏矩陣和有限域中的矩陣。Matlab 的運算是在矩陣意義下進行的,這里所提到的是狹義上的矩陣,即通常意義上的矩陣。目錄第一部分:矩陣基本知識一、矩陣的創(chuàng)建1 .直接輸入法2 .利用 Matlab 函數(shù)創(chuàng)建矩陣3 .利用文件創(chuàng)建矩陣二、矩陣的拆分1 .矩陣元素2 .矩陣拆分3 .特殊矩陣三、矩陣的運算1 .算術(shù)運算2 .關(guān)系運算3 .邏輯運算四、矩陣分析1 .對角陣2 .三角陣3 .矩陣的轉(zhuǎn)置與旋轉(zhuǎn)4 .矩陣的翻轉(zhuǎn)5 .矩陣的

2、逆與偽逆6 .方陣的行列式7 .矩陣的秩與跡8 .向量和矩陣的范數(shù)9 .矩陣的特征佰與特征向量五、字符串六、其他第二部分矩陣的應(yīng)用一、稀疏矩陣1 .稀疏矩陣的創(chuàng)建2 .稀疏矩陣的運算3 .二、有限域中的矩陣內(nèi)容第一部分:矩陣基本知識(只作基本介紹,詳細說明請參考 Matlab 幫助文檔)矩陣是進行數(shù)據(jù)處理和運算的基本元素。在 MATLABa、通常意義上的數(shù)量(標量)可看成是1*1的矩陣;b、n 維矢量可看成是”n*1的矩陣;c、多項式可由它的系數(shù)矩陣完全確定。一、矩陣的創(chuàng)建在 MATLA 呻創(chuàng)建矩陣有以下規(guī)則:a、矩陣元素必須在”“內(nèi);b、矩陣的同行元素之間用空格(或“,)隔開;c、矩陣的行與

3、行之問用;(或回車符)隔開;d、矩陣的元素可以是數(shù)值、變量、表達式或函數(shù);e、矩陣的尺寸不必預(yù)先定義。下面介紹四種矩陣的創(chuàng)建方法:1、直接輸入法最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素,輸入的方法按照上面的規(guī)則。建立向量的時候可以利用冒號表達式,冒號表達式可以產(chǎn)生一個行向量,一般格式是:e1:e2:e3,其中 e1 為初始值,e2 為步長,e3 為終止值。還可以用 linspace 函數(shù)產(chǎn)生行向量, 其調(diào)用格式為: linspace(a,b,n),其中 a 和 b 是生成向量的第一個和最后一個元素,n 是元素總數(shù)??梢钥闯鰜?linspace(a,b,n)與 a:(b-a)/(n-1)

4、:b 等價。2、利用 MATLAEg 數(shù)創(chuàng)建矩陣基本矩陣函數(shù)如下:(1)ones()函數(shù):產(chǎn)生全為 1 的矩陣,ones(n):產(chǎn)生 n*n 維的全 1 矩陣,ones(m,n):產(chǎn)生m*n 維的全 1 矩陣;zeros()函數(shù):產(chǎn)生全為 0 的矩陣;(3)rand()函數(shù):產(chǎn)生在(0,1)區(qū)間均勻分布的隨機陣;eye()函數(shù):產(chǎn)生單位陣;(5) randn()函數(shù):產(chǎn)生均值為 0,方差為 1 的標準正態(tài)分布隨機矩陣。3、利用文件建立矩陣當矩陣尺寸較大或為經(jīng)常使用的數(shù)據(jù)矩陣,則可以將此矩陣保存為文件,在需要時直接將文件利用 load 命令調(diào)入工作環(huán)境中使用即可。 同時可以利用命令 reshap

5、e 對調(diào)入的矩陣進行重排。reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣 A 重新排成m*n 的二維矩陣。、矩陣的拆分1 .矩陣元素可以通過下標(行列索引)引用矩陣的元素,如 Matrix(m,n)。也可以采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應(yīng)元素在內(nèi)存中的排列順序。在 MATLABK 矩陣元素按列存儲,先第一列,再第二列,依次類推。序號(Index)與下標(Subscript)是一一對應(yīng)的,以 m*n 矩陣 A 為例,矩陣元素 A(i,j)的序號為(j-1)*m+io 其相互轉(zhuǎn)換關(guān)系也可利用 sub2ind 和 ind2sub 函數(shù)求得。2 .矩陣拆分

6、利用冒號表達式獲得子矩陣:A(:,j)表示取 A 矩陣的第 j 列全部元素;A(i,:)表示 A 矩陣第 i 行的全部元素;A(i,j)表示取 A 矩陣第 i 行、第 j 列的元素。A(i:i+m,:)表示取 A 矩陣第 ii+m 行的全部元素;A(:,k:k+m)表示取 A 矩陣第 kk+m 列的全部元素,A(i:i+m,k:k+m)表示取 A 矩陣第 ii+m 行內(nèi),并在第 kk+m 列中的所有元素。止匕外,還可利用一般向量和 end 運算符來表示矩陣下標,從而獲得子矩陣。end 表示某一維的末尾元素下標。利用空矩陣刪除矩陣的元素:在 MATLAB,定義口為空矩陣。給變量 X 賦空矩陣的語

7、句為 X=。注意,X=與 clearX不同,clear 是將 X 從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數(shù)為 0。3、特殊矩陣(1)魔方矩陣魔方矩陣有一個有趣的性質(zhì),其每行、每列及兩條對角線上的元素和都相等。對于 n 階魔方陣,其元素由 1,2,3,n2 共 n2 個整數(shù)組成。MATLAB 提供了求魔方矩陣的函數(shù) magic(n),其功能是生成一個 n 階魔方陣。(2)范得蒙矩陣范得蒙(Vandermonde)矩陣最后一列全為 1,倒數(shù)第二列為一個指定的向量,其他各列是其后列與倒數(shù)第二列的點乘積。可以用一個指定向量生成一個范得蒙矩陣。在 MATLAB函數(shù) vander(V)生成以

8、向量 V 為基礎(chǔ)向量的范得蒙矩陣。(3)希爾伯特矩陣在 MATLAB生成希爾伯特矩陣的函數(shù)是 hilb(n)。使用一般方法求逆會因為原始數(shù)據(jù)的微小擾動而產(chǎn)生不可靠的計算結(jié)果。MATLA 沖,有一個專門求希爾伯特矩陣的逆的函數(shù) invhilb(n),其功能是求 n 階的希爾伯特矩陣的逆矩陣。(4)托普利茲矩陣托普利茲(Toeplitz)矩陣除第一行第一列外, 其他每個元素都與左上角的元素相同。生成托普利茲矩陣的函數(shù)是 toeplitz(x,y),它生成一個以x為第一列, y為第一行的托普利茲矩陣。 這里x,y均為向量, 兩者不必等長。 toeplitz(x)用向量 x 生成一個對稱的托普利茲矩陣

9、。(5)伴隨矩陣 MATLABt 成伴隨矩 P$的函數(shù)是 compan(p),其中 p 是一個多項式的系數(shù)向量,高次幕系數(shù)排在前,低次幕排在后。(6)帕斯卡矩陣我們知道,二次項(x+y)n 展開后的系數(shù)隨 n 的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡(Pascal)矩陣函數(shù)pascal(n)生成一個 n 階帕斯卡矩陣。三、矩陣的運算1、算術(shù)運算MATLAB 勺基本算術(shù)運算有:+(加)、(減)、*(乘)、/(右除)、(左除)、A(乘方)、(轉(zhuǎn)置)。運算是在矩陣意義下進行的,單個數(shù)據(jù)的算術(shù)運算只是一種特例。(1)矩陣加減運算假定有兩個矩陣 A 和 B,則可以由 A

10、+B 和 A-B 實現(xiàn)矩陣的加減運算。運算規(guī)則是:若 A 和 B 矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A 和 B 矩陣的相應(yīng)元素相加減。如果 A 與 B 的維數(shù)不相同,則 MATLABI 給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。(2)矩陣乘法假定有兩個矩陣 A 和 B,若 A 為 m*n 矩陣,B 為 n*p 矩陣,則 C=A*B 為 m*p 矩陣。(3)矩陣除法在 MATLABK 有兩種矩陣除法運算:和/,分別表示左除和右除。如果 A 矩陣是非奇異方陣, 則 AB 和 B/A 運算可以實現(xiàn)。 AB 等效于 A 的逆左乘 B 矩陣,也就是 inv(A)*B,而 B/A 等效于 A 矩

11、陣的逆右乘 B 矩陣,也就是 B*inv(A)。對于含有標量的運算,兩種除法運算的結(jié)果相同。對于矩陣來說,左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系,一般 BwB/A。(4)矩陣的乘方一個矩陣的乘方運算可以表示成 AAx,要求 A 為方陣,x 為標量。(5)矩陣的轉(zhuǎn)置對實數(shù)矩陣進行行列互換,對復(fù)數(shù)矩陣,共腕轉(zhuǎn)置,特殊的,操作符.共腕不轉(zhuǎn)置(見點運算);(6)點運算在 MATLAB有一種特殊的運算,因為其運算符是在有關(guān)算術(shù)運算符前面加點,所以叫點運算。點運算符有.*、./、和 A。兩矩陣進行點運算是指它們的對應(yīng)元素進行相關(guān)運算,要求兩矩陣的維參數(shù)相同。2、關(guān)系運算MATLA 提供了 6

12、種關(guān)系運算符:(小于)、二(小于或等于)、(大于)、=(大于或等于)、=(等于)、=(不等于)。關(guān)系運算符的運算法則為:(1)當兩個比較量是標量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為 1,否則為 0;(2) 當參與比較的量是兩個維數(shù)相同的矩陣時, 比較是對兩矩陣相同位置的元素按標量關(guān)系運算規(guī)則逐個進行,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由 0 或 1 組成;(3)當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由

13、 0 或 1 組成。3、邏輯運算MATLA 提供了 3 種邏輯運算符:&(與)、|(或)和(非)。邏輯運算的運算法則為:(1)在邏輯運算中,確認非零元素為真,用 1 表示,零元素為假,用 0 表示;(2)設(shè)參與邏輯運算的是兩個標量 a 和 b,那么,a&ba,b 全為非零時,運算結(jié)果為 1,否則為 0。a|ba,b 中只要有一個非零,運算結(jié)果為 1。a 當 a 是零時,運算結(jié)果為 1;當 a非零時,運算結(jié)果為0o(3)若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規(guī)則逐個進行。最終運算結(jié)果是一個與原矩陣同維的矩陣,其元素由 1 或 0組成;(4)若參與邏

14、輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規(guī)則逐個進行。最終運算結(jié)果是一個與矩陣同維的矩陣,其元素由 1 或 0 組成;(5)邏輯非是單目運算符,也服從矩陣運算規(guī)則;(6)在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。四、矩陣分析1、對角陣(1)對角陣只有對角線上有非 0 元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數(shù)量矩陣,對角線上的元素都為 1 的對角矩陣稱為單位矩陣。(1)提取矩陣的對角線元素設(shè) A 為 m*n 矩陣, diag(A)函數(shù)用于提取矩陣 A 主對角線元素,產(chǎn)生一個具有 min(m,n)個元素的列向量。diag

15、(A)函數(shù)還有一種形式 diag(A,k),其功能是提取第 k 條對角線的元素。(2)構(gòu)造對角矩陣設(shè) V 為具有 m 個元素的向量,diag(V)將產(chǎn)生一個 m*m 對角矩陣,其主對角線元素即為向量 V 的元素。diag(V)函數(shù)也有另一種形式 diag(V,k),其功能是產(chǎn)生一個 n*n(n=m+k)對角陣,其第 m 條對角線的元素即為向量 V 的元素。2、二角陣三角陣又進一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為 0 的一種矩陣,而下三角陣則是對角線以上的元素全為 0 的一種矩陣。(1)上三角矩陣求矩陣 A 的上三角陣的 MATLA 函數(shù)是 triu(A)。tr

16、iu(A)函數(shù)也有另一種形式 triu(A,k),其功能是求矩陣 A 的第 k 條對角線以上的元素。(2)下三角矩陣在 MATLABK 提取矩陣 A 的下三角矩陣的函數(shù)是 tril(A)和 tril(A,k),其用法與提取上三角矩陣的函數(shù) triu(A)和 triu(A,k)完全相同。3、矩陣的轉(zhuǎn)置與旋轉(zhuǎn)(1)矩陣的轉(zhuǎn)置轉(zhuǎn)置運算符是單撇號()。(2)矩陣的旋轉(zhuǎn)利用函數(shù) rot90(A,k)將矩陣 A 旋轉(zhuǎn) 90o 的 k 倍,當 k 為 1 時可省略。4、矩陣的翻轉(zhuǎn)對矩陣實施左右翻轉(zhuǎn)是將原矩陣的第一列和最后一列調(diào)換, 第二列和倒數(shù)第二列調(diào)換, , ,依次類推。矩陣 A 實施左右翻轉(zhuǎn)的函數(shù)是 f

17、liplr(A),對矩陣 A 實施上下翻轉(zhuǎn)的函數(shù)是 flipud(A)o5、矩陣的逆與偽逆(1)矩陣的逆對于一個方陣 A,如果存在一個與其同階的方陣 B,使得: AB=BA=I(I 為單位矩陣)則稱 B為 A的逆矩陣, 當然,A也是 B的逆矩陣。 求方陣 A的逆矩陣可調(diào)用函數(shù) inv(A)o(2)矩陣的偽逆如果矩陣 A 不是一個方陣, 或者 A 是一個非滿秩的方陣時, 矩陣 A 沒有逆矩陣,但可以找到一個與 A 的轉(zhuǎn)置矩陣 A 同型白矩陣 B,使得:ABA=ABAB=B 止匕時稱矩陣 B 為矩陣 A 的偽逆,也稱為廣義逆矩陣。在 MATLAB,求一個矩陣偽逆的函數(shù)是pinv(A)o6、方陣的行

18、列式把一個方陣看作一個行列式,并對其按行列式的規(guī)則求值,這個值就稱為矩陣所對應(yīng)的行列式的值。在 MATLABK 求方陣 A 所對應(yīng)的行列式的值的函數(shù)是 det(A)。7、矩陣的秩與跡(1)矩陣的秩矩陣線性無關(guān)的行數(shù)與列數(shù)稱為矩陣的秩。 在 MATLABK 求矩陣秩的函數(shù)是rank(A)。(2)矩陣的跡矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征值之和。在MATLAB求矩陣的跡的函數(shù)是 trace(A)。8、向量和矩陣的范數(shù)矩陣或向量的范數(shù)用來度量矩陣或向量在某種意義下的長度。范數(shù)有多種方法定義,其定義不同,范數(shù)值也就不同。(1)向量的 3 種常用范數(shù)及其計算函數(shù)在 MATLABP,求向量

19、范數(shù)的函數(shù)為:a、norm(V)或 norm(V,2):計算向量 V 的 2-范數(shù);b、norm(V,1):計算向量 V 的 1-范數(shù);c、norm(V,inf):計算向量 V 的00-范數(shù)。(2)矩陣的范數(shù)及其計算函數(shù) MATLA 班供了求 3 種矩陣范數(shù)的函數(shù),其函數(shù)調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同。(3)矩陣的條件數(shù)在 MATLAB計算矩陣 A 的 3 種條件數(shù)的函數(shù)是:a、cond(A,1)計算 A 的 1-范數(shù)下的條件數(shù);b、cond(A)或 cond(A,2)計算 A 的 2-范數(shù)數(shù)下的條件數(shù);c、cond(A,inf)計算 A 的-范數(shù)下的條件數(shù)。9、矩陣的特征值與特征向量在

20、 MATLABK 計算矩陣 A 的特征值和特征向量的函數(shù)是 eig(A),常用的調(diào)用格式有 3 種:E=eig(A):求矩陣 A 的全部特征值,構(gòu)成向量 E。(2)V,D=eig(A):求矩陣 A 的全部特征值,構(gòu)成對角陣 D,并求 A 的特征向量構(gòu)成 V 的列向量。V,D=eig(A,nobalance):與第 2 種格式類似,但第 2 種格式中先對 A 作相似變換后求矩陣 A 的特征值和特征向量,而格式 3 直接求矩陣 A 的特征值和特征向量。五、字符串在 MATLABK 字符串是用單撇號括起來的字符序列。 MATLAB1 字符串當作一個行向量,每個元素對應(yīng)一個字符,其標識方法和數(shù)值向量相

21、同。也可以建立多行字符串矩陣。字符串是以 ASCII 碼形式存儲的。abs 和 double 函數(shù)都可以用來獲取字符串矩陣所對應(yīng)的 ASCII 碼數(shù)值矩陣。相反,char 函數(shù)可以把 ASCII 碼矩陣轉(zhuǎn)換為字符用矩陣。與字符串有關(guān)的另一個重要函數(shù)是 eval,其調(diào)用格式為:eval(t)其中 t 為字符串。它的作用是把字符串的內(nèi)容作為對應(yīng)的 MATLAB語句來執(zhí)行。六、其他查看矩陣非零元素的分布 spy(A);第二部分矩陣的應(yīng)用一、稀疏矩陣對于一個 n 階矩陣,通常需要 n2的存儲空間,當 n 很大時,進行矩陣運算時會占用大量的內(nèi)存空間和運算時間。在許多實際問題中遇到的大規(guī)模矩陣中通常含有大

22、量 0 元素,這樣的矩陣稱為稀疏矩陣。Matlab 支持稀疏矩陣,只存儲矩陣的非零元素。由于不存儲那些”0元素,也不對它們進行操作,從而節(jié)省內(nèi)存空間和計算時間,其計算的復(fù)雜性和代價僅僅取決于稀疏矩陣的非零元素的個數(shù),這在矩陣的存儲空間和計算時間上都有很大的優(yōu)點。矩陣的密度定義為矩陣中非零元素的個數(shù)除以矩陣中總的元素個數(shù)。對于低密度的矩陣,采用稀疏方式存儲是一種很好的選擇。1、稀疏矩陣的創(chuàng)建(1)將完全存儲方式轉(zhuǎn)化為稀疏存儲方式函數(shù) A=sparse(S)將矩陣 S 轉(zhuǎn)化為稀疏存儲方式的矩陣 Ao 當夕!陣 S 是稀疏存儲方式時,則函數(shù)調(diào)用相當于 A=Ssparse 函數(shù)還有其他一些調(diào)用格式:s

23、parse(m,n):生成一個 m*n 的所有元素都是 0 的稀疏矩陣。sparse(u,v,S):u,v,S 是 3 個等長的向量。S 是要建立的稀疏矩陣的非 0 元素,u(i)、v(i)分別是 S(i)的行和列下標,該函數(shù)建立一個 max(u)行、max(v)列并以 S 為稀疏元素的稀疏矩陣。止匕外,還有一些和稀疏矩陣操作有關(guān)的函數(shù)。full(A):返回和稀疏存儲矩陣 A 對應(yīng)的完全存儲方式矩陣。(2)直接創(chuàng)建稀疏矩陣 S=sparse(i,j,s,m,n),其中 i 和 j 分別是矩陣非零元素的行和列指標向量,s 是非零元素值向量,mn 分別是矩陣的行數(shù)和列數(shù)。(3)從文件中創(chuàng)建稀疏矩陣利用load和spconvert函數(shù)可以從包含一系列下標和非零元素的文本文件中輸入稀疏矩陣。例:設(shè)文本文件 T.txt 中有三列內(nèi)容135246258-36 可,第一列是一些行下標,第二列是列下標,第三列是非零元素值。loadT.txtS=spconvert(T)。(4)稀疏帶狀矩陣的創(chuàng)建 S=spdiags(B,d,m,n)其中 m 和 n 分別是矩陣的行數(shù)和列數(shù); d 是長度為 p 的整數(shù)向量,它指定矩陣 S 的對角線位置;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論