matlab矩陣的表示和簡單操作_第1頁
matlab矩陣的表示和簡單操作_第2頁
matlab矩陣的表示和簡單操作_第3頁
matlab矩陣的表示和簡單操作_第4頁
matlab矩陣的表示和簡單操作_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、matlab矩陣的表示和簡單操作matlab矩陣的表示和簡單操作一、矩陣的表示在MATLAB中創(chuàng)建矩陣有以下規(guī)則:a、矩陣元素必須在” ”內(nèi);b、矩陣的同行元素之間用空格(或”,”)隔開;c、矩陣的行與行之間用”;”(或回車符)隔開;d、矩陣的元素可以是數(shù)值、變量、表達式或函數(shù);e、矩陣的尺寸不必預(yù)先定義。二,矩陣的創(chuàng)建:1、直接輸入法最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素,輸入的方法按照上面的規(guī)則。建立向量的時候可以利用冒號表達式,冒號表達式可以產(chǎn)生一個行向量,一般格式是: e1:e2:e3,其中e1為初始值,e2為步長,e3為終止值。還可以用linspace函數(shù)產(chǎn)生行向量,其調(diào)用

2、格式為:linspace(a,b,n) ,其中a和b是生成向量的第一個和最后一個元素,n是元素總數(shù)。2、利用MATLAB函數(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矩陣;(2) zeros()函數(shù):產(chǎn)生全為0的矩陣;(3) rand()函數(shù):產(chǎn)生在(0,1)區(qū)間均勻分布的隨機陣;(4) eye()函數(shù):產(chǎn)生單位陣;(5) randn()函數(shù):產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機矩陣。3、利用文件建立矩陣當(dāng)矩陣尺寸較大或為經(jīng)常使用的數(shù)據(jù)矩陣,則可以將此矩陣保存為文件,在需要時直接將文件

3、利用load命令調(diào)入工作環(huán)境中使用即可。同時可以利用命令reshape對調(diào)入的矩陣進行重排。reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成m*n的二維矩陣。二、矩陣的簡單操作1獲取矩陣元素可以通過下標(biāo)(行列索引)引用矩陣的元素,如 Matrix(m,n)。也可以采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應(yīng)元素在內(nèi)存中的排列順序。在MATLAB中,矩陣元素按列存儲。序號(Index)與下標(biāo)(Subscript )是一一對應(yīng)的,以m*n矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得

4、。2矩陣拆分利用冒號表達式獲得子矩陣:(1) A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。(2) 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運算符來表示矩陣下標(biāo),從而獲得子矩陣。end表示某一維的末尾元素下標(biāo)。利用空矩陣刪除矩陣的元素:在MATLAB中,定義為空矩陣。給變量X賦空矩陣的語句為X=。注意,X=與clear X不同,

5、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)生成以向量V為基礎(chǔ)向量的范得蒙矩陣。(3) 希爾伯特矩陣在MATLAB中,生

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

7、的系數(shù)向量,高次冪系數(shù)排在前,低次冪排在后。(6) 帕斯卡矩陣我們知道,二次項(x+y)n展開后的系數(shù)隨n的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡(Pascal)矩陣。函數(shù)pascal(n)生成一個n階帕斯卡矩陣。三、矩陣的運算1、算術(shù)運算MATLAB的基本算術(shù)運算有:(加)、(減)、*(乘)、/(右除)、(左除)、(乘方)、(轉(zhuǎn)置)。運算是在矩陣意義下進行的,單個數(shù)據(jù)的算術(shù)運算只是一種特例。(1) 矩陣加減運算假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運算。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A和B矩陣的相應(yīng)元素相加

8、減。如果A與B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。(2) 矩陣乘法 假定有兩個矩陣A和B,若A為m*n矩陣,B為n*p矩陣,則C=A*B為m*p矩陣。(3) 矩陣除法在MATLAB中,有兩種矩陣除法運算:和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則AB和B/A運算可以實現(xiàn)。AB等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。對于含有標(biāo)量的運算,兩種除法運算的結(jié)果相同。對于矩陣來說,左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系,一般ABB/A。(4) 矩陣的乘方 一個矩陣的乘方運算可以

9、表示成Ax,要求A為方陣,x為標(biāo)量。(5) 矩陣的轉(zhuǎn)置 對實數(shù)矩陣進行行列互換,對復(fù)數(shù)矩陣,共軛轉(zhuǎn)置,特殊的,操作符.共軛不轉(zhuǎn)置(見點運算);(6) 點運算在MATLAB中,有一種特殊的運算,因為其運算符是在有關(guān)算術(shù)運算符前面加點,所以叫點運算。點運算符有.*、./、.和.。兩矩陣進行點運算是指它們的對應(yīng)元素進行相關(guān)運算,要求兩矩陣的維參數(shù)相同。2、關(guān)系運算MATLAB提供了6種關(guān)系運算符:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于)。關(guān)系運算符的運算法則為:(1) 當(dāng)兩個比較量是標(biāo)量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為1,否則為0;(2) 當(dāng)參與比較的量是兩

10、個維數(shù)相同的矩陣時,比較是對兩矩陣相同位置的元素按標(biāo)量關(guān)系運算規(guī)則逐個進行,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成;(3) 當(dāng)參與比較的一個是標(biāo)量,而另一個是矩陣時,則把標(biāo)量與矩陣的每一個元素按標(biāo)量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。3、邏輯運算MATLAB提供了3種邏輯運算符:&(與)、|(或)和(非)。 邏輯運算的運算法則為:(1) 在邏輯運算中,確認(rèn)非零元素為真,用1表示,零元素為假,用0表示;(2) 設(shè)參與邏輯運算的是兩個標(biāo)量a和b,那么,a&b a,b全為

11、非零時,運算結(jié)果為1,否則為0。 a|b a,b中只要有一個非零,運算結(jié)果為1。a 當(dāng)a是零時,運算結(jié)果為1;當(dāng)a非零時,運算結(jié)果為0。(3) 若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標(biāo)量規(guī)則逐個進行。最終運算結(jié)果是一個與原矩陣同維的矩陣,其元素由1或0組成;(4) 若參與邏輯運算的一個是標(biāo)量,一個是矩陣,那么運算將在標(biāo)量與矩陣中的每個元素之間按標(biāo)量規(guī)則逐個進行。最終運算結(jié)果是一個與矩陣同維的矩陣,其元素由1或0組成;(5) 邏輯非是單目運算符,也服從矩陣運算規(guī)則;(6) 在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。四、矩陣分析1、對角陣(1)

12、對角陣只有對角線上有非0元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數(shù)量矩陣,對角線上的元素都為1的對角矩陣稱為單位矩陣。(1) 提取矩陣的對角線元素設(shè)A為m*n矩陣,diag(A)函數(shù)用于提取矩陣A主對角線元素,產(chǎn)生一個具有min(m,n)個元素的列向量。diag(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的元

13、素。2、三角陣三角陣又進一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角陣則是對角線以上的元素全為0的一種矩陣。(1) 上三角矩陣 求矩陣A的上三角陣的MATLAB函數(shù)是triu(A)。 triu(A)函數(shù)也有另一種形式triu(A,k),其功能是求矩陣A的第k條對角線以上的元素。(2) 下三角矩陣在MATLAB中,提取矩陣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ù)rot9

14、0(A,k)將矩陣A旋轉(zhuǎn)90o的k倍,當(dāng)k為1時可省略。4、矩陣的翻轉(zhuǎn)對矩陣實施左右翻轉(zhuǎn)是將原矩陣的第一列和最后一列調(diào)換,第二列和倒數(shù)第二列調(diào)換,依次類推。矩陣A實施左右翻轉(zhuǎn)的函數(shù)是fliplr(A),對矩陣A實施上下翻轉(zhuǎn)的函數(shù)是flipud(A)。5、矩陣的逆與偽逆(1) 矩陣的逆 對于一個方陣A,如果存在一個與其同階的方陣B,使得:AB=BA=I (I為單位矩陣) 則稱B為A的逆矩陣,當(dāng)然,A也是B的逆矩陣。求方陣A的逆矩陣可調(diào)用函數(shù)inv(A)。(2) 矩陣的偽逆如果矩陣A不是一個方陣,或者A是一個非滿秩的方陣時,矩陣A沒有逆矩陣,但可以找到一個與A的轉(zhuǎn)置矩陣A同型的矩陣B,使得:ABA

15、=A,BAB=B 此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆矩陣。在MATLAB中,求一個矩陣偽逆的函數(shù)是pinv(A)。6、方陣的行列式把一個方陣看作一個行列式,并對其按行列式的規(guī)則求值,這個值就稱為矩陣所對應(yīng)的行列式的值。在MATLAB中,求方陣A所對應(yīng)的行列式的值的函數(shù)是det(A)。7、矩陣的秩與跡(1) 矩陣的秩 矩陣線性無關(guān)的行數(shù)與列數(shù)稱為矩陣的秩。在MATLAB中,求矩陣秩的函數(shù)是rank(A)。(2) 矩陣的跡矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征值之和。在MATLAB中,求矩陣的跡的函數(shù)是trace(A)。8、向量和矩陣的范數(shù)矩陣或向量的范數(shù)用來度量矩陣或向量在某種

16、意義下的長度。范數(shù)有多種方法定義,其定義不同,范數(shù)值也就不同。(1) 向量的3種常用范數(shù)及其計算函數(shù) 在MATLAB中,求向量范數(shù)的函數(shù)為:a、norm(V)或norm(V,2):計算向量V的2-范數(shù);b、norm(V,1):計算向量V的1-范數(shù);c、norm(V,inf):計算向量V的-范數(shù)。(2) 矩陣的范數(shù)及其計算函數(shù) MATLAB提供了求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ù)下的條

17、件數(shù);c、cond(A,inf) 計算A的 -范數(shù)下的條件數(shù)。9、 矩陣的特征值與特征向量在MATLAB中,計算矩陣A的特征值和特征向量的函數(shù)是eig(A),常用的調(diào)用格式有3種:(1) E=eig(A):求矩陣A的全部特征值,構(gòu)成向量E。(2) V,D=eig(A):求矩陣A的全部特征值,構(gòu)成對角陣D,并求A的特征向量構(gòu)成V的列向量。(3) V,D=eig(A,nobalance):與第2種格式類似,但第2種格式中先對A作相似變換后求矩陣A的特征值和特征向量,而格式3直接求矩陣A的特征值和特征向量。五、字符串在MATLAB中,字符串是用單撇號括起來的字符序列。MATLAB將字符串當(dāng)作一個行向

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

19、中遇到的大規(guī)模矩陣中通常含有大量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)化為稀疏存儲方式的矩陣A。當(dāng)矩陣S是稀疏存儲方式時,則函數(shù)調(diào)用相當(dāng)于A=S。 sparse函數(shù)還有其他一些調(diào)用格式: sparse(m,n):生成一個m*n的所有元素都是0的稀疏矩陣。 sparse(u,v,S)-:u,v,S是3個等長的向量。S是要建立的稀疏矩陣的非0元素,u(i)、v(i)分別是S(i)的行和列下標(biāo),該函數(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 分別是矩陣非零元素的行和列指標(biāo)向量,s 是非零元素值向量,m,n 分別是矩陣的行數(shù)和列數(shù)。(3) 從文件中創(chuàng)建稀疏矩陣?yán)?/p>

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論