MATLAB矩陣及其運(yùn)算_第1頁(yè)
MATLAB矩陣及其運(yùn)算_第2頁(yè)
MATLAB矩陣及其運(yùn)算_第3頁(yè)
MATLAB矩陣及其運(yùn)算_第4頁(yè)
MATLAB矩陣及其運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第2章章 MATLAB矩陣及其運(yùn)算矩陣及其運(yùn)算2.1 變量和數(shù)據(jù)操作變量和數(shù)據(jù)操作2.2 MATLAB矩陣矩陣2.3 MATLAB運(yùn)算運(yùn)算2.4 矩陣分析矩陣分析2.5 矩陣的超越函數(shù)矩陣的超越函數(shù)2.6 字符串字符串2.7 結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)2.8 稀疏矩陣稀疏矩陣2.1 變量和數(shù)據(jù)操作變量和數(shù)據(jù)操作2.1.1 變量與賦值變量與賦值1變量命名變量命名在在MATLAB 6.5中,變量名是以字母開(kāi)頭,中,變量名是以字母開(kāi)頭,后接字母、數(shù)字或下劃線的字符序列,最后接字母、數(shù)字或下劃線的字符序列,最多多63個(gè)字符。在個(gè)字符。在MATLAB中,變量名區(qū)分中,變量名區(qū)分字母的大小寫(xiě)。

2、字母的大小寫(xiě)。2賦值語(yǔ)句賦值語(yǔ)句(1) 變量變量=表達(dá)式表達(dá)式 (2) 表達(dá)式表達(dá)式其中表達(dá)式是用運(yùn)算符將有關(guān)運(yùn)算量連接其中表達(dá)式是用運(yùn)算符將有關(guān)運(yùn)算量連接起來(lái)的式子,其結(jié)果是一個(gè)矩陣。起來(lái)的式子,其結(jié)果是一個(gè)矩陣。例例2-1 計(jì)算表達(dá)式的值,并顯示計(jì)算結(jié)果。計(jì)算表達(dá)式的值,并顯示計(jì)算結(jié)果。在在MATLAB命令窗口輸入命令:命令窗口輸入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)其中其中pi和和i都是都是MATLAB預(yù)先定義的變量,預(yù)先定義的變量,分別代表代表圓周率分別代表代表圓周率和虛數(shù)單位。和虛數(shù)單位。輸出結(jié)

3、果是:輸出結(jié)果是:z = -0.3488 + 0.3286i 2.1.2 預(yù)定義變量預(yù)定義變量在在MATLAB工作空間中,還駐留幾個(gè)由系統(tǒng)工作空間中,還駐留幾個(gè)由系統(tǒng)本身定義的變量。例如,用本身定義的變量。例如,用pi表示圓周率表示圓周率的近似值,用的近似值,用i,j表示虛數(shù)單位。表示虛數(shù)單位。預(yù)定義變量有特定的含義,在使用時(shí),應(yīng)預(yù)定義變量有特定的含義,在使用時(shí),應(yīng)盡量避免對(duì)這些變量重新賦值。盡量避免對(duì)這些變量重新賦值。2.1.3 內(nèi)存變量的管理內(nèi)存變量的管理1內(nèi)存變量的刪除與修改內(nèi)存變量的刪除與修改MATLAB工作空間窗口專(zhuān)門(mén)用于內(nèi)存變量工作空間窗口專(zhuān)門(mén)用于內(nèi)存變量的管理。在工作空間窗口中可

4、以顯示所有的管理。在工作空間窗口中可以顯示所有內(nèi)存變量的屬性。當(dāng)選中某些變量后,再內(nèi)存變量的屬性。當(dāng)選中某些變量后,再單擊單擊Delete按鈕,就能刪除這些變量。當(dāng)選按鈕,就能刪除這些變量。當(dāng)選中某些變量后,再單擊中某些變量后,再單擊Open按鈕,將進(jìn)入按鈕,將進(jìn)入變量編輯器。通過(guò)變量編輯器可以直接觀變量編輯器。通過(guò)變量編輯器可以直接觀察變量中的具體元素,也可修改變量中的察變量中的具體元素,也可修改變量中的具體元素。具體元素。clear命令用于刪除命令用于刪除MATLAB工作空間中的變工作空間中的變量。量。who和和whos這兩個(gè)命令用于顯示在這兩個(gè)命令用于顯示在MATLAB工作空間中已經(jīng)駐留

5、的變量名清工作空間中已經(jīng)駐留的變量名清單。單。who命令只顯示出駐留變量的名稱(chēng),命令只顯示出駐留變量的名稱(chēng),whos在給出變量名的同時(shí),還給出它們的在給出變量名的同時(shí),還給出它們的大小、所占字節(jié)數(shù)及數(shù)據(jù)類(lèi)型等信息。大小、所占字節(jié)數(shù)及數(shù)據(jù)類(lèi)型等信息。2內(nèi)存變量文件內(nèi)存變量文件利用利用MAT文件可以把當(dāng)前文件可以把當(dāng)前MATLAB工作空工作空間中的一些有用變量長(zhǎng)久地保留下來(lái),擴(kuò)間中的一些有用變量長(zhǎng)久地保留下來(lái),擴(kuò)展名是展名是.mat。MAT文件的生成和裝入由文件的生成和裝入由save和和load命令來(lái)完成。常用格式為:命令來(lái)完成。常用格式為:save 文件名文件名 變量名表變量名表 -append

6、-asciiload 文件名文件名 變量名表變量名表 -ascii其中,文件名可以帶路徑,但不需帶擴(kuò)展其中,文件名可以帶路徑,但不需帶擴(kuò)展名名.mat,命令隱含一定對(duì),命令隱含一定對(duì).mat文件進(jìn)行操作。文件進(jìn)行操作。變量名表中的變量個(gè)數(shù)不限,只要內(nèi)存或變量名表中的變量個(gè)數(shù)不限,只要內(nèi)存或文件中存在即可,變量名之間以空格分隔。文件中存在即可,變量名之間以空格分隔。當(dāng)變量名表省略時(shí),保存或裝入全部變量。當(dāng)變量名表省略時(shí),保存或裝入全部變量。-ascii選項(xiàng)使文件以選項(xiàng)使文件以ASCII格式處理,省略格式處理,省略該選項(xiàng)時(shí)文件將以二進(jìn)制格式處理。該選項(xiàng)時(shí)文件將以二進(jìn)制格式處理。save命命令中的令

7、中的-append選項(xiàng)控制將變量追加到選項(xiàng)控制將變量追加到MAT文件中。文件中。2.1.4 MATLAB常用數(shù)學(xué)函數(shù)常用數(shù)學(xué)函數(shù)MATLAB提供了許多數(shù)學(xué)函數(shù),函數(shù)的自提供了許多數(shù)學(xué)函數(shù),函數(shù)的自變量規(guī)定為矩陣變量,運(yùn)算法則是將函數(shù)變量規(guī)定為矩陣變量,運(yùn)算法則是將函數(shù)逐項(xiàng)作用于矩陣的元素上,因而運(yùn)算的結(jié)逐項(xiàng)作用于矩陣的元素上,因而運(yùn)算的結(jié)果是一個(gè)與自變量同維數(shù)的矩陣。果是一個(gè)與自變量同維數(shù)的矩陣。函數(shù)使用說(shuō)明:函數(shù)使用說(shuō)明:(1) 三角函數(shù)以弧度為單位計(jì)算。三角函數(shù)以弧度為單位計(jì)算。(2) abs函數(shù)可以求實(shí)數(shù)的絕對(duì)值、復(fù)數(shù)的模、函數(shù)可以求實(shí)數(shù)的絕對(duì)值、復(fù)數(shù)的模、字符串的字符串的ASCII碼值

8、。碼值。(3) 用于取整的函數(shù)有用于取整的函數(shù)有fix、floor、ceil、round,要注意它們的區(qū)別。,要注意它們的區(qū)別。(4) rem與與mod函數(shù)的區(qū)別。函數(shù)的區(qū)別。rem(x,y)和和mod(x,y)要求要求x,y必須為相同大小的實(shí)矩陣必須為相同大小的實(shí)矩陣或?yàn)闃?biāo)量。或?yàn)闃?biāo)量。2.1.5 數(shù)據(jù)的輸出格式數(shù)據(jù)的輸出格式 MATLAB用十進(jìn)制數(shù)表示一個(gè)常數(shù),具用十進(jìn)制數(shù)表示一個(gè)常數(shù),具體可采用日常記數(shù)法和科學(xué)記數(shù)法兩種表體可采用日常記數(shù)法和科學(xué)記數(shù)法兩種表示方法。示方法。 在一般情況下,在一般情況下,MATLAB內(nèi)部每一個(gè)數(shù)內(nèi)部每一個(gè)數(shù)據(jù)元素都是用雙精度數(shù)來(lái)表示和存儲(chǔ)的。據(jù)元素都是用雙

9、精度數(shù)來(lái)表示和存儲(chǔ)的。數(shù)據(jù)輸出時(shí)用戶可以用數(shù)據(jù)輸出時(shí)用戶可以用format命令設(shè)置或命令設(shè)置或改變數(shù)據(jù)輸出格式。改變數(shù)據(jù)輸出格式。format命令的格式為:命令的格式為: format 格式符格式符其中格式符決定數(shù)據(jù)的輸出格式其中格式符決定數(shù)據(jù)的輸出格式2.2 MATLAB矩陣矩陣2.2.1 矩陣的建立矩陣的建立1直接輸入法直接輸入法 最簡(jiǎn)單的建立矩陣的方法是從鍵盤(pán)直接最簡(jiǎn)單的建立矩陣的方法是從鍵盤(pán)直接輸入矩陣的元素。具體方法如下:將矩陣輸入矩陣的元素。具體方法如下:將矩陣的元素用方括號(hào)括起來(lái),按矩陣行的順序的元素用方括號(hào)括起來(lái),按矩陣行的順序輸入各元素,同一行的各元素之間用空格輸入各元素,同

10、一行的各元素之間用空格或逗號(hào)分隔,不同行的元素之間用分號(hào)分或逗號(hào)分隔,不同行的元素之間用分號(hào)分隔。隔。2利用利用M文件建立矩陣文件建立矩陣 對(duì)于比較大且比較復(fù)雜的矩陣,可以為對(duì)于比較大且比較復(fù)雜的矩陣,可以為它專(zhuān)門(mén)建立一個(gè)它專(zhuān)門(mén)建立一個(gè)M文件。下面通過(guò)一個(gè)簡(jiǎn)文件。下面通過(guò)一個(gè)簡(jiǎn)單例子來(lái)說(shuō)明如何利用單例子來(lái)說(shuō)明如何利用M文件創(chuàng)建矩陣。文件創(chuàng)建矩陣。 例例2-2 利用利用M文件建立文件建立MYMAT矩陣。矩陣。(1) 啟動(dòng)有關(guān)編輯程序或啟動(dòng)有關(guān)編輯程序或MATLAB文本編輯文本編輯器,并輸入待建矩陣:器,并輸入待建矩陣: (2) 把輸入的內(nèi)容以純文本方式存盤(pán)把輸入的內(nèi)容以純文本方式存盤(pán)(設(shè)文設(shè)文件

11、名為件名為mymatrix.m)。 (3) 在在MATLAB命令窗口中輸入命令窗口中輸入mymatrix,即運(yùn)行該即運(yùn)行該M文件,就會(huì)自動(dòng)建立一個(gè)名為文件,就會(huì)自動(dòng)建立一個(gè)名為MYMAT的矩陣,可供以后使用。的矩陣,可供以后使用。3利用冒號(hào)表達(dá)式建立一個(gè)向量利用冒號(hào)表達(dá)式建立一個(gè)向量 冒號(hào)表達(dá)式可以產(chǎn)生一個(gè)行向量,一般格式是:冒號(hào)表達(dá)式可以產(chǎn)生一個(gè)行向量,一般格式是: e1:e2:e3其中其中e1為初始值,為初始值,e2為步長(zhǎng),為步長(zhǎng),e3為終止值。為終止值。在在MATLAB中,還可以用中,還可以用linspace函數(shù)產(chǎn)生行向函數(shù)產(chǎn)生行向量。其調(diào)用格式為:量。其調(diào)用格式為:linspace(a

12、,b,n)其中其中a和和b是生成向量的第一個(gè)和最后一個(gè)元素,是生成向量的第一個(gè)和最后一個(gè)元素,n是元素總數(shù)。是元素總數(shù)。顯然,顯然,linspace(a,b,n)與與a:(b-a)/(n-1):b等價(jià)。等價(jià)。4建立大矩陣建立大矩陣大矩陣可由方括號(hào)中的小矩陣或向量建立起來(lái)。大矩陣可由方括號(hào)中的小矩陣或向量建立起來(lái)。2.2.2 矩陣的拆分矩陣的拆分1矩陣元素矩陣元素 通過(guò)下標(biāo)引用矩陣的元素,例如通過(guò)下標(biāo)引用矩陣的元素,例如A(3,2)=200采用矩陣元素的序號(hào)來(lái)引用矩陣元素。矩陣元素的序號(hào)就采用矩陣元素的序號(hào)來(lái)引用矩陣元素。矩陣元素的序號(hào)就是相應(yīng)元素在內(nèi)存中的排列順序。在是相應(yīng)元素在內(nèi)存中的排列順

13、序。在MATLAB中,矩陣中,矩陣元素按列存儲(chǔ),先第一列,再第二列,依次類(lèi)推。例如元素按列存儲(chǔ),先第一列,再第二列,依次類(lèi)推。例如A=1,2,3;4,5,6;A(3)ans = 2顯然,序號(hào)顯然,序號(hào)(Index)與下標(biāo)與下標(biāo)(Subscript )是一一對(duì)應(yīng)的,以是一一對(duì)應(yīng)的,以mn矩陣矩陣A為例,矩陣元素為例,矩陣元素A(i,j)的序號(hào)為的序號(hào)為(j-1)*m+i。其。其相互轉(zhuǎn)換關(guān)系也可利用相互轉(zhuǎn)換關(guān)系也可利用sub2ind和和ind2sub函數(shù)求得。函數(shù)求得。2矩陣拆分矩陣拆分 (1) 利用冒號(hào)表達(dá)式獲得子矩陣?yán)妹疤?hào)表達(dá)式獲得子矩陣 A(:,j)表示取表示取A矩陣的第矩陣的第j列全部元

14、素;列全部元素;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),并在第行內(nèi),并在第kk+m列中的所有元素。列中的所有元素。此外,還可利用一般向量和此外,還可利用一般向量和end運(yùn)算符來(lái)表示矩陣下標(biāo),運(yùn)算符來(lái)表示矩陣下標(biāo),從而獲得子矩陣。從而獲得子矩陣。end表示某一維的末尾元

15、素下標(biāo)。表示某一維的末尾元素下標(biāo)。 (2) 利用空矩陣刪除矩陣的元素利用空矩陣刪除矩陣的元素 在在MATLAB中,定義中,定義為空矩陣。給變?yōu)榭站仃?。給變量量X賦空矩陣的語(yǔ)句為賦空矩陣的語(yǔ)句為X=。注意,。注意,X=與與clear X不同,不同,clear是將是將X從工作空間中刪除,從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數(shù)而空矩陣則存在于工作空間中,只是維數(shù)為為0。2.2.3 特殊矩陣特殊矩陣1通用的特殊矩陣通用的特殊矩陣常用的產(chǎn)生通用特殊矩陣的函數(shù)有:常用的產(chǎn)生通用特殊矩陣的函數(shù)有:zeros:產(chǎn)生全:產(chǎn)生全0矩陣矩陣(零矩陣零矩陣)。ones:產(chǎn)生全:產(chǎn)生全1矩陣矩陣(幺矩陣

16、幺矩陣)。eye:產(chǎn)生單位矩陣。:產(chǎn)生單位矩陣。rand:產(chǎn)生:產(chǎn)生01間均勻分布的隨機(jī)矩陣。間均勻分布的隨機(jī)矩陣。randn:產(chǎn)生均值為:產(chǎn)生均值為0,方差為,方差為1的標(biāo)準(zhǔn)正態(tài)的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣。分布隨機(jī)矩陣。例例2-3 分別建立分別建立33、32和與矩陣和與矩陣A同樣大小的同樣大小的零矩陣。零矩陣。(1) 建立一個(gè)建立一個(gè)33零矩陣。零矩陣。zeros(3) (2) 建立一個(gè)建立一個(gè)32零矩陣。零矩陣。zeros(3,2) (3) 設(shè)設(shè)A為為23矩陣,則可以用矩陣,則可以用zeros(size(A)建立建立一個(gè)與矩陣一個(gè)與矩陣A同樣大小零矩陣。同樣大小零矩陣。A=1 2 3;4 5

17、6; %產(chǎn)生一個(gè)產(chǎn)生一個(gè)23階矩陣階矩陣Azeros(size(A) %產(chǎn)生一個(gè)與矩陣產(chǎn)生一個(gè)與矩陣A同樣大小的同樣大小的零矩陣零矩陣?yán)?-4 建立隨機(jī)矩陣:建立隨機(jī)矩陣:(1) 在區(qū)間在區(qū)間20,50內(nèi)均勻分布的內(nèi)均勻分布的5階隨機(jī)矩陣。階隨機(jī)矩陣。(2) 均值為均值為0.6、方差為、方差為0.1的的5階正態(tài)分布隨機(jī)矩陣。階正態(tài)分布隨機(jī)矩陣。命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函數(shù)還有此外,常用的函數(shù)還有reshape(A,m,n),它在矩,它在矩陣總元素保持不變的前提下,將矩陣陣總元素保持不變的前提下,將

18、矩陣A重新排成重新排成mn的二維矩陣。的二維矩陣。2用于專(zhuān)門(mén)學(xué)科的特殊矩陣用于專(zhuān)門(mén)學(xué)科的特殊矩陣 (1) 魔方矩陣魔方矩陣魔方矩陣有一個(gè)有趣的性質(zhì),其每行、每魔方矩陣有一個(gè)有趣的性質(zhì),其每行、每列及兩條對(duì)角線上的元素和都相等。對(duì)于列及兩條對(duì)角線上的元素和都相等。對(duì)于n階魔方陣,其元素由階魔方陣,其元素由1,2,3,n2共共n2個(gè)整數(shù)個(gè)整數(shù)組成。組成。MATLAB提供了求魔方矩陣的函數(shù)提供了求魔方矩陣的函數(shù)magic(n),其功能是生成一個(gè),其功能是生成一個(gè)n階魔方陣。階魔方陣。例例2-5 將將101125等等25個(gè)數(shù)填入一個(gè)個(gè)數(shù)填入一個(gè)5行行5列的列的表格中,使其每行每列及對(duì)角線的和均為表格中

19、,使其每行每列及對(duì)角線的和均為565。M=100+magic(5) (2) 范得蒙矩陣范得蒙矩陣范得蒙范得蒙(Vandermonde)矩陣最后一列全為矩陣最后一列全為1,倒數(shù)第二列為一個(gè)指定的向量,其他各列倒數(shù)第二列為一個(gè)指定的向量,其他各列是其后列與倒數(shù)第二列的點(diǎn)乘積。可以用是其后列與倒數(shù)第二列的點(diǎn)乘積。可以用一個(gè)指定向量生成一個(gè)范得蒙矩陣。在一個(gè)指定向量生成一個(gè)范得蒙矩陣。在MATLAB中,函數(shù)中,函數(shù)vander(V)生成以向量生成以向量V為基礎(chǔ)向量的范得蒙矩陣。例如,為基礎(chǔ)向量的范得蒙矩陣。例如,A=vander(1;2;3;5)即可得到上述范得蒙矩即可得到上述范得蒙矩陣。陣。(3)

20、希爾伯特矩陣希爾伯特矩陣在在MATLAB中,生成希爾伯特矩陣的函數(shù)中,生成希爾伯特矩陣的函數(shù)是是hilb(n)。使用一般方法求逆會(huì)因?yàn)樵紨?shù)據(jù)的微小使用一般方法求逆會(huì)因?yàn)樵紨?shù)據(jù)的微小擾動(dòng)而產(chǎn)生不可靠的計(jì)算結(jié)果。擾動(dòng)而產(chǎn)生不可靠的計(jì)算結(jié)果。MATLAB中,有一個(gè)專(zhuān)門(mén)求希爾伯特矩陣的逆的函中,有一個(gè)專(zhuān)門(mén)求希爾伯特矩陣的逆的函數(shù)數(shù)invhilb(n),其功能是求,其功能是求n階的希爾伯特矩階的希爾伯特矩陣的逆矩陣。陣的逆矩陣。例例2-6 求求4階希爾伯特矩陣及其逆矩陣。階希爾伯特矩陣及其逆矩陣。命令如下:命令如下:format rat %以有理形式輸出以有理形式輸出H=hilb(4)H=invhi

21、lb(4) (4) 托普利茲矩陣托普利茲矩陣托普利茲托普利茲(Toeplitz)矩陣除第一行第一列外,矩陣除第一行第一列外,其他每個(gè)元素都與左上角的元素相同。生其他每個(gè)元素都與左上角的元素相同。生成托普利茲矩陣的函數(shù)是成托普利茲矩陣的函數(shù)是toeplitz(x,y),它,它生成一個(gè)以生成一個(gè)以x為第一列,為第一列,y為第一行的托普為第一行的托普利茲矩陣。這里利茲矩陣。這里x, y均為向量,兩者不必等均為向量,兩者不必等長(zhǎng)。長(zhǎng)。toeplitz(x)用向量用向量x生成一個(gè)對(duì)稱(chēng)的托普生成一個(gè)對(duì)稱(chēng)的托普利茲矩陣。例如利茲矩陣。例如T=toeplitz(1:6) (5) 伴隨矩陣伴隨矩陣MATLAB生

22、成伴隨矩陣的函數(shù)是生成伴隨矩陣的函數(shù)是compan(p),其中,其中p是一個(gè)多項(xiàng)式的系數(shù)向是一個(gè)多項(xiàng)式的系數(shù)向量,高次冪系數(shù)排在前,低次冪排在后。量,高次冪系數(shù)排在前,低次冪排在后。例如,為了求多項(xiàng)式的例如,為了求多項(xiàng)式的x3-7x+6的伴隨矩陣,的伴隨矩陣,可使用命令:可使用命令:p=1,0,-7,6;compan(p) (6) 帕斯卡矩陣帕斯卡矩陣我們知道,二次項(xiàng)我們知道,二次項(xiàng)(x+y)n展開(kāi)后的系數(shù)隨展開(kāi)后的系數(shù)隨n的增大組成一個(gè)三角形表,稱(chēng)為楊輝三角的增大組成一個(gè)三角形表,稱(chēng)為楊輝三角形。由楊輝三角形表組成的矩陣稱(chēng)為帕斯形。由楊輝三角形表組成的矩陣稱(chēng)為帕斯卡卡(Pascal)矩陣。函

23、數(shù)矩陣。函數(shù)pascal(n)生成一個(gè)生成一個(gè)n階階帕斯卡矩陣。帕斯卡矩陣。例例2-7 求求(x+y)5的展開(kāi)式。的展開(kāi)式。在在MATLAB命令窗口,輸入命令:命令窗口,輸入命令:pascal(6)矩陣次對(duì)角線上的元素矩陣次對(duì)角線上的元素1,5,10,10,5,1即為展即為展開(kāi)式的系數(shù)。開(kāi)式的系數(shù)。 2.3 MATLAB運(yùn)算運(yùn)算 2.3.1算術(shù)運(yùn)算算術(shù)運(yùn)算1基本算術(shù)運(yùn)算基本算術(shù)運(yùn)算 MATLAB的基本算術(shù)運(yùn)算有:的基本算術(shù)運(yùn)算有:(加加)、(減減)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,運(yùn)算是在矩陣意義下進(jìn)行的,單個(gè)注意,運(yùn)算是在矩陣意義下進(jìn)行的,單個(gè)數(shù)據(jù)的算術(shù)運(yùn)算只是

24、一種特例。數(shù)據(jù)的算術(shù)運(yùn)算只是一種特例。 (1) 矩陣加減運(yùn)算矩陣加減運(yùn)算 假定有兩個(gè)矩陣假定有兩個(gè)矩陣A和和B,則可以由,則可以由A+B和和A-B實(shí)現(xiàn)矩陣的加減運(yùn)算。運(yùn)算規(guī)則是:若實(shí)現(xiàn)矩陣的加減運(yùn)算。運(yùn)算規(guī)則是:若A和和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運(yùn)算,加減運(yùn)算,A和和B矩陣的相應(yīng)元素相加減。矩陣的相應(yīng)元素相加減。如果如果A與與B的維數(shù)不相同,則的維數(shù)不相同,則MATLAB將給將給出錯(cuò)誤信息,提示用戶兩個(gè)矩陣的維數(shù)不出錯(cuò)誤信息,提示用戶兩個(gè)矩陣的維數(shù)不匹配。匹配。 (2) 矩陣乘法矩陣乘法 假定有兩個(gè)矩陣假定有兩個(gè)矩陣A和和B,若,若A為為mn矩陣,矩

25、陣,B為為np矩陣,則矩陣,則C=A*B為為mp矩陣。矩陣。 (3) 矩陣除法矩陣除法在在MATLAB中,有兩種矩陣除法運(yùn)算:中,有兩種矩陣除法運(yùn)算:和和/,分,分別表示左除和右除。如果別表示左除和右除。如果A矩陣是非奇異方陣,矩陣是非奇異方陣,則則AB和和B/A運(yùn)算可以實(shí)現(xiàn)。運(yùn)算可以實(shí)現(xiàn)。AB等效于等效于A的逆左的逆左乘乘B矩陣,也就是矩陣,也就是inv(A)*B,而,而B(niǎo)/A等效于等效于A矩陣矩陣的逆右乘的逆右乘B矩陣,也就是矩陣,也就是B*inv(A)。對(duì)于含有標(biāo)量的運(yùn)算,兩種除法運(yùn)算的結(jié)果相同,對(duì)于含有標(biāo)量的運(yùn)算,兩種除法運(yùn)算的結(jié)果相同,如如3/4和和43有相同的值,都等于有相同的值,

26、都等于0.75。又如,設(shè)。又如,設(shè)a=10.5,25,則,則a/5=5a=2.1000 5.0000。對(duì)于矩。對(duì)于矩陣來(lái)說(shuō),左除和右除表示兩種不同的除數(shù)矩陣和陣來(lái)說(shuō),左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對(duì)于矩陣運(yùn)算,一般被除數(shù)矩陣的關(guān)系。對(duì)于矩陣運(yùn)算,一般ABB/A。 (4) 矩陣的乘方矩陣的乘方 一個(gè)矩陣的乘方運(yùn)算可以表示成一個(gè)矩陣的乘方運(yùn)算可以表示成Ax,要,要求求A為方陣,為方陣,x為標(biāo)量。為標(biāo)量。2點(diǎn)運(yùn)算點(diǎn)運(yùn)算 在在MATLAB中,有一種特殊的運(yùn)算,因中,有一種特殊的運(yùn)算,因?yàn)槠溥\(yùn)算符是在有關(guān)算術(shù)運(yùn)算符前面加點(diǎn),為其運(yùn)算符是在有關(guān)算術(shù)運(yùn)算符前面加點(diǎn),所以叫點(diǎn)運(yùn)算。點(diǎn)運(yùn)算

27、符有所以叫點(diǎn)運(yùn)算。點(diǎn)運(yùn)算符有.*、./、.和和.。兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對(duì)應(yīng)元素進(jìn)兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對(duì)應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維參數(shù)相同。行相關(guān)運(yùn)算,要求兩矩陣的維參數(shù)相同。2.3.2 關(guān)系運(yùn)算關(guān)系運(yùn)算 MATLAB提供了提供了6種關(guān)系運(yùn)算符:種關(guān)系運(yùn)算符:(小小于于)、(大于大于)、=(大于或大于或等于等于)、=(等于等于)、=(不等于不等于)。它們的含。它們的含義不難理解,但要注意其書(shū)寫(xiě)方法與數(shù)學(xué)義不難理解,但要注意其書(shū)寫(xiě)方法與數(shù)學(xué)中的不等式符號(hào)不盡相同。中的不等式符號(hào)不盡相同。 關(guān)系運(yùn)算符的運(yùn)算法則為:關(guān)系運(yùn)算符的運(yùn)算法則為: (1) 當(dāng)兩個(gè)比較量是標(biāo)量時(shí),直接比較兩

28、當(dāng)兩個(gè)比較量是標(biāo)量時(shí),直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達(dá)式結(jié)果數(shù)的大小。若關(guān)系成立,關(guān)系表達(dá)式結(jié)果為為1,否則為,否則為0。 (2) 當(dāng)參與比較的量是兩個(gè)維數(shù)相同的矩當(dāng)參與比較的量是兩個(gè)維數(shù)相同的矩陣時(shí),比較是對(duì)兩矩陣相同位置的元素按陣時(shí),比較是對(duì)兩矩陣相同位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行,并給出元素標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行,并給出元素比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個(gè)比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個(gè)維數(shù)與原矩陣相同的矩陣,它的元素由維數(shù)與原矩陣相同的矩陣,它的元素由0或或1組成。組成。 (3) 當(dāng)參與比較的一個(gè)是標(biāo)量,而另一個(gè)是當(dāng)參與比較的一個(gè)是標(biāo)量,而另一個(gè)是矩陣時(shí),則把標(biāo)

29、量與矩陣的每一個(gè)元素按矩陣時(shí),則把標(biāo)量與矩陣的每一個(gè)元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)比較,并給出元素標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)比較,并給出元素比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個(gè)比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個(gè)維數(shù)與原矩陣相同的矩陣,它的元素由維數(shù)與原矩陣相同的矩陣,它的元素由0或或1組成。組成。 例例2-8 產(chǎn)生產(chǎn)生5階隨機(jī)方陣階隨機(jī)方陣A,其元素為,其元素為10,90區(qū)間區(qū)間的隨機(jī)整數(shù),然后判斷的隨機(jī)整數(shù),然后判斷A的元素是否能被的元素是否能被3整除。整除。 (1) 生成生成5階隨機(jī)方陣階隨機(jī)方陣A。A=fix(90-10+1)*rand(5)+10) (2) 判斷判斷A的元素是否可以被的元素是否

30、可以被3整除。整除。 P=rem(A,3)=0其中,其中,rem(A,3)是矩陣是矩陣A的每個(gè)元素除以的每個(gè)元素除以3的余數(shù)的余數(shù)矩陣。此時(shí),矩陣。此時(shí),0被擴(kuò)展為與被擴(kuò)展為與A同維數(shù)的零矩陣,同維數(shù)的零矩陣,P是進(jìn)行等于是進(jìn)行等于(=)比較的結(jié)果矩陣。比較的結(jié)果矩陣。2.3.3 邏輯運(yùn)算邏輯運(yùn)算 MATLAB提供了提供了3種邏輯運(yùn)算符:種邏輯運(yùn)算符:&(與與)、|(或或)和和(非非)。 邏輯運(yùn)算的運(yùn)算法則為:邏輯運(yùn)算的運(yùn)算法則為: (1) 在邏輯運(yùn)算中,確認(rèn)非零元素為真,用在邏輯運(yùn)算中,確認(rèn)非零元素為真,用1表示,零元表示,零元素為假,用素為假,用0表示。表示。 (2) 設(shè)參與邏輯運(yùn)

31、算的是兩個(gè)標(biāo)量設(shè)參與邏輯運(yùn)算的是兩個(gè)標(biāo)量a和和b,那么,那么, a&b a,b全為非零時(shí),運(yùn)算結(jié)果為全為非零時(shí),運(yùn)算結(jié)果為1,否則為,否則為0。 a|b a,b中只要有一個(gè)非零,運(yùn)算結(jié)果為中只要有一個(gè)非零,運(yùn)算結(jié)果為1。 a 當(dāng)當(dāng)a是零時(shí),運(yùn)算結(jié)果為是零時(shí),運(yùn)算結(jié)果為1;當(dāng);當(dāng)a非零時(shí),運(yùn)算結(jié)果非零時(shí),運(yùn)算結(jié)果為為0。 (3) 若參與邏輯運(yùn)算的是兩個(gè)同維矩陣,那若參與邏輯運(yùn)算的是兩個(gè)同維矩陣,那么運(yùn)算將對(duì)矩陣相同位置上的元素按標(biāo)量么運(yùn)算將對(duì)矩陣相同位置上的元素按標(biāo)量規(guī)則逐個(gè)進(jìn)行。最終運(yùn)算結(jié)果是一個(gè)與原規(guī)則逐個(gè)進(jìn)行。最終運(yùn)算結(jié)果是一個(gè)與原矩陣同維的矩陣,其元素由矩陣同維的矩陣,其元素由1

32、或或0組成。組成。 (4) 若參與邏輯運(yùn)算的一個(gè)是標(biāo)量,一個(gè)是若參與邏輯運(yùn)算的一個(gè)是標(biāo)量,一個(gè)是矩陣,那么運(yùn)算將在標(biāo)量與矩陣中的每個(gè)矩陣,那么運(yùn)算將在標(biāo)量與矩陣中的每個(gè)元素之間按標(biāo)量規(guī)則逐個(gè)進(jìn)行。最終運(yùn)算元素之間按標(biāo)量規(guī)則逐個(gè)進(jìn)行。最終運(yùn)算結(jié)果是一個(gè)與矩陣同維的矩陣,其元素由結(jié)果是一個(gè)與矩陣同維的矩陣,其元素由1或或0組成。組成。 (5) 邏輯非是單目運(yùn)算符,也服從矩陣運(yùn)算規(guī)邏輯非是單目運(yùn)算符,也服從矩陣運(yùn)算規(guī)則。則。(6) 在算術(shù)、關(guān)系、邏輯運(yùn)算中,算術(shù)運(yùn)算在算術(shù)、關(guān)系、邏輯運(yùn)算中,算術(shù)運(yùn)算優(yōu)先級(jí)最高,邏輯運(yùn)算優(yōu)先級(jí)最低。優(yōu)先級(jí)最高,邏輯運(yùn)算優(yōu)先級(jí)最低。例例2-9 建立矩陣建立矩陣A,然后找

33、出大于,然后找出大于4的元素的的元素的位置。位置。(1) 建立矩陣建立矩陣A。A=4,-65,-54,0,6;56,0,67,-45,0 (2) 找出大于找出大于4的元素的位置。的元素的位置。find(A4)2.4 矩陣分析矩陣分析2.4.1 對(duì)角陣與三角陣對(duì)角陣與三角陣1對(duì)角陣對(duì)角陣只有對(duì)角線上有非只有對(duì)角線上有非0元素的矩陣稱(chēng)為對(duì)角矩元素的矩陣稱(chēng)為對(duì)角矩陣,對(duì)角線上的元素相等的對(duì)角矩陣稱(chēng)為陣,對(duì)角線上的元素相等的對(duì)角矩陣稱(chēng)為數(shù)量矩陣,對(duì)角線上的元素都為數(shù)量矩陣,對(duì)角線上的元素都為1的對(duì)角矩的對(duì)角矩陣稱(chēng)為單位矩陣。陣稱(chēng)為單位矩陣。(1) 提取矩陣的對(duì)角線元素提取矩陣的對(duì)角線元素設(shè)設(shè)A為為mn

34、矩陣,矩陣,diag(A)函數(shù)用于提取矩陣函數(shù)用于提取矩陣A主對(duì)角線元主對(duì)角線元素,產(chǎn)生一個(gè)具有素,產(chǎn)生一個(gè)具有min(m,n)個(gè)元素的列向量。個(gè)元素的列向量。diag(A)函數(shù)還有一種形式函數(shù)還有一種形式diag(A,k),其功能是提取第,其功能是提取第k條條對(duì)角線的元素。對(duì)角線的元素。(2) 構(gòu)造對(duì)角矩陣構(gòu)造對(duì)角矩陣設(shè)設(shè)V為具有為具有m個(gè)元素的向量,個(gè)元素的向量,diag(V)將產(chǎn)生一個(gè)將產(chǎn)生一個(gè)mm對(duì)對(duì)角矩陣,其主對(duì)角線元素即為向量角矩陣,其主對(duì)角線元素即為向量V的元素。的元素。diag(V)函數(shù)也有另一種形式函數(shù)也有另一種形式diag(V,k),其功能是產(chǎn)生一個(gè),其功能是產(chǎn)生一個(gè)nn(

35、n=m+)對(duì)角陣,其第對(duì)角陣,其第k條對(duì)角線的元素即為向量條對(duì)角線的元素即為向量V的的元素。元素。例例2-10 先建立先建立55矩陣矩陣A,然后將,然后將A的第一的第一行元素乘以行元素乘以1,第二行乘以,第二行乘以2,第五行,第五行乘以乘以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A %用用D左乘左乘A,對(duì),對(duì)A的每行乘的每行乘以一個(gè)指定常數(shù)以一個(gè)指定常數(shù)2三角陣三角陣三角陣又進(jìn)一步分為上三角陣和下三角陣,三角陣又進(jìn)一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對(duì)角

36、線以下的元所謂上三角陣,即矩陣的對(duì)角線以下的元素全為素全為0的一種矩陣,而下三角陣則是對(duì)角的一種矩陣,而下三角陣則是對(duì)角線以上的元素全為線以上的元素全為0的一種矩陣。的一種矩陣。(1) 上三角矩陣上三角矩陣求矩陣求矩陣A的上三角陣的的上三角陣的MATLAB函數(shù)是函數(shù)是triu(A)。triu(A)函數(shù)也有另一種形式函數(shù)也有另一種形式triu(A,k),其功能是,其功能是求矩陣求矩陣A的第的第k條對(duì)角線以上的元素。例如,提取條對(duì)角線以上的元素。例如,提取矩陣矩陣A的第的第2條對(duì)角線以上的元素,形成新的矩陣條對(duì)角線以上的元素,形成新的矩陣B。(2) 下三角矩陣下三角矩陣在在MATLAB中,提取矩陣

37、中,提取矩陣A的下三角矩陣的函數(shù)的下三角矩陣的函數(shù)是是tril(A)和和tril(A,k),其用法與提取上三角矩陣的,其用法與提取上三角矩陣的函數(shù)函數(shù)triu(A)和和triu(A,k)完全相同。完全相同。2.4.2 矩陣的轉(zhuǎn)置與旋轉(zhuǎn)矩陣的轉(zhuǎn)置與旋轉(zhuǎn)1矩陣的轉(zhuǎn)置矩陣的轉(zhuǎn)置轉(zhuǎn)置運(yùn)算符是單撇號(hào)轉(zhuǎn)置運(yùn)算符是單撇號(hào)()。2矩陣的旋轉(zhuǎn)矩陣的旋轉(zhuǎn)利用函數(shù)利用函數(shù)rot90(A,k)將矩陣將矩陣A旋轉(zhuǎn)旋轉(zhuǎn)90的的k倍,倍,當(dāng)當(dāng)k為為1時(shí)可省略。時(shí)可省略。3矩陣的左右翻轉(zhuǎn)矩陣的左右翻轉(zhuǎn)對(duì)矩陣實(shí)施左右翻轉(zhuǎn)是將原矩陣的第一列對(duì)矩陣實(shí)施左右翻轉(zhuǎn)是將原矩陣的第一列和最后一列調(diào)換,第二列和倒數(shù)第二列調(diào)和最后一列調(diào)換,第

38、二列和倒數(shù)第二列調(diào)換,換,依次類(lèi)推。,依次類(lèi)推。MATLAB對(duì)矩陣對(duì)矩陣A實(shí)實(shí)施左右翻轉(zhuǎn)的函數(shù)是施左右翻轉(zhuǎn)的函數(shù)是fliplr(A)。4矩陣的上下翻轉(zhuǎn)矩陣的上下翻轉(zhuǎn)MATLAB對(duì)矩陣對(duì)矩陣A實(shí)施上下翻轉(zhuǎn)的函數(shù)是實(shí)施上下翻轉(zhuǎn)的函數(shù)是flipud(A)。2.4.3 矩陣的逆與偽逆矩陣的逆與偽逆1矩陣的逆矩陣的逆對(duì)于一個(gè)方陣對(duì)于一個(gè)方陣A,如果存在一個(gè)與其同階的方陣,如果存在一個(gè)與其同階的方陣B,使得:,使得:AB=BA=I (I為單位矩陣為單位矩陣)則稱(chēng)則稱(chēng)B為為A的逆矩陣,當(dāng)然,的逆矩陣,當(dāng)然,A也是也是B的逆矩陣。的逆矩陣。求一個(gè)矩陣的逆是一件非常煩瑣的工作,容易出錯(cuò),但在求一個(gè)矩陣的逆是一件

39、非常煩瑣的工作,容易出錯(cuò),但在MATLAB中,求一個(gè)矩陣的逆非常容易。求方陣中,求一個(gè)矩陣的逆非常容易。求方陣A的逆矩的逆矩陣可調(diào)用函數(shù)陣可調(diào)用函數(shù)inv(A)。例例2-11 用求逆矩陣的方法解線性方程組。用求逆矩陣的方法解線性方程組。Ax=b其解為:其解為:x=A-1b2矩陣的偽逆矩陣的偽逆如果矩陣如果矩陣A不是一個(gè)方陣,或者不是一個(gè)方陣,或者A是一個(gè)非滿秩的是一個(gè)非滿秩的方陣時(shí),矩陣方陣時(shí),矩陣A沒(méi)有逆矩陣,但可以找到一個(gè)與沒(méi)有逆矩陣,但可以找到一個(gè)與A的轉(zhuǎn)置矩陣的轉(zhuǎn)置矩陣A同型的矩陣同型的矩陣B,使得:,使得:ABA=ABAB=B此時(shí)稱(chēng)矩陣此時(shí)稱(chēng)矩陣B為矩陣為矩陣A的偽逆,也稱(chēng)為廣義逆矩

40、陣。的偽逆,也稱(chēng)為廣義逆矩陣。在在MATLAB中,求一個(gè)矩陣偽逆的函數(shù)是中,求一個(gè)矩陣偽逆的函數(shù)是pinv(A)。2.4.4 方陣的行列式方陣的行列式把一個(gè)方陣看作一個(gè)行列式,并對(duì)其按行把一個(gè)方陣看作一個(gè)行列式,并對(duì)其按行列式的規(guī)則求值,這個(gè)值就稱(chēng)為矩陣所對(duì)列式的規(guī)則求值,這個(gè)值就稱(chēng)為矩陣所對(duì)應(yīng)的行列式的值。在應(yīng)的行列式的值。在MATLAB中,求方陣中,求方陣A所對(duì)應(yīng)的行列式的值的函數(shù)是所對(duì)應(yīng)的行列式的值的函數(shù)是det(A)。2.4.5 矩陣的秩與跡矩陣的秩與跡1矩陣的秩矩陣的秩矩陣線性無(wú)關(guān)的行數(shù)與列數(shù)稱(chēng)為矩陣的秩。矩陣線性無(wú)關(guān)的行數(shù)與列數(shù)稱(chēng)為矩陣的秩。在在MATLAB中,求矩陣秩的函數(shù)是中,

41、求矩陣秩的函數(shù)是rank(A)。2矩陣的跡矩陣的跡矩陣的跡等于矩陣的對(duì)角線元素之和,也矩陣的跡等于矩陣的對(duì)角線元素之和,也等于矩陣的特征值之和。在等于矩陣的特征值之和。在MATLAB中,中,求矩陣的跡的函數(shù)是求矩陣的跡的函數(shù)是trace(A)。2.4.6 向量和矩陣的范數(shù)向量和矩陣的范數(shù)矩陣或向量的范數(shù)用來(lái)度量矩陣或向量在矩陣或向量的范數(shù)用來(lái)度量矩陣或向量在某種意義下的長(zhǎng)度。范數(shù)有多種方法定義,某種意義下的長(zhǎng)度。范數(shù)有多種方法定義,其定義不同,范數(shù)值也就不同。其定義不同,范數(shù)值也就不同。1向量的向量的3種常用范數(shù)及其計(jì)算函數(shù)種常用范數(shù)及其計(jì)算函數(shù)在在MATLAB中,求向量范數(shù)的函數(shù)為:中,求向

42、量范數(shù)的函數(shù)為:(1) norm(V)或或norm(V,2):計(jì)算向量:計(jì)算向量V的的2范數(shù)。范數(shù)。(2) norm(V,1):計(jì)算向量:計(jì)算向量V的的1范數(shù)。范數(shù)。(3) norm(V,inf):計(jì)算向量:計(jì)算向量V的的范數(shù)。范數(shù)。2矩陣的范數(shù)及其計(jì)算函數(shù)矩陣的范數(shù)及其計(jì)算函數(shù)MATLAB提供了求提供了求3種矩陣范數(shù)的函數(shù),其函數(shù)種矩陣范數(shù)的函數(shù),其函數(shù)調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同。調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同。2.4.7 矩陣的條件數(shù)矩陣的條件數(shù)在在MATLAB中,計(jì)算矩陣中,計(jì)算矩陣A的的3種條件數(shù)的函數(shù)是:種條件數(shù)的函數(shù)是:(1) cond(A,1) 計(jì)算計(jì)算A的的1范

43、數(shù)下的條件數(shù)。范數(shù)下的條件數(shù)。(2) cond(A)或或cond(A,2) 計(jì)算計(jì)算A的的2范數(shù)數(shù)下的范數(shù)數(shù)下的條件數(shù)。條件數(shù)。(3) cond(A,inf) 計(jì)算計(jì)算A的的 范數(shù)下的條件數(shù)。范數(shù)下的條件數(shù)。2.4.8 矩陣的特征值與特征向量矩陣的特征值與特征向量在在MATLAB中,計(jì)算矩陣中,計(jì)算矩陣A的特征值和特的特征值和特征向量的函數(shù)是征向量的函數(shù)是eig(A),常用的調(diào)用格式有,常用的調(diào)用格式有3種:種:(1) E=eig(A):求矩陣:求矩陣A的全部特征值,構(gòu)的全部特征值,構(gòu)成向量成向量E。(2) V,D=eig(A):求矩陣:求矩陣A的全部特征值,的全部特征值,構(gòu)成對(duì)角陣構(gòu)成對(duì)角陣

44、D,并求,并求A的特征向量構(gòu)成的特征向量構(gòu)成V的的列向量。列向量。(3) V,D=eig(A,nobalance):與第:與第2種格式類(lèi)種格式類(lèi)似,但第似,但第2種格式中先對(duì)種格式中先對(duì)A作相似變換后求作相似變換后求矩陣矩陣A的特征值和特征向量,而格式的特征值和特征向量,而格式3直接直接求矩陣求矩陣A的特征值和特征向量。的特征值和特征向量。例例2-12 用求特征值的方法解方程。用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0p=3,-7,0,5,2,-18;A=compan(p); %A的伴隨矩陣的伴隨矩陣x1=eig(A) %求求A的特征值的特征值x2=roots(p) %直接

45、求多項(xiàng)式直接求多項(xiàng)式p的零的零點(diǎn)點(diǎn)2.5 矩陣的超越函數(shù)矩陣的超越函數(shù)1矩陣平方根矩陣平方根sqrtmsqrtm(A)計(jì)算矩陣計(jì)算矩陣A的平方根。的平方根。2矩陣對(duì)數(shù)矩陣對(duì)數(shù)logmlogm(A)計(jì)算矩陣計(jì)算矩陣A的自然對(duì)數(shù)。此函數(shù)輸?shù)淖匀粚?duì)數(shù)。此函數(shù)輸入?yún)?shù)的條件與輸出結(jié)果間的關(guān)系和函數(shù)入?yún)?shù)的條件與輸出結(jié)果間的關(guān)系和函數(shù)sqrtm(A)完全一樣完全一樣3矩陣指數(shù)矩陣指數(shù)expm、expm1、expm2、expm3expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都求矩陣指數(shù)的功能都求矩陣指數(shù)eA。4普通矩陣函數(shù)普通矩陣函數(shù)funmfunm(A,fun)用來(lái)計(jì)算直接作

46、用于矩陣用來(lái)計(jì)算直接作用于矩陣A的的由由fun指定的超越函數(shù)值。當(dāng)指定的超越函數(shù)值。當(dāng)fun取取sqrt時(shí),時(shí),funm(A,sqrt)可以計(jì)算矩陣可以計(jì)算矩陣A的平方的平方根,與根,與sqrtm(A)的計(jì)算結(jié)果一樣。的計(jì)算結(jié)果一樣。 2.6 字符串字符串 在在MATLAB中,字符串是用單撇號(hào)括起中,字符串是用單撇號(hào)括起來(lái)的字符序列。來(lái)的字符序列。MATLAB將字符串當(dāng)作一個(gè)行向量,每個(gè)將字符串當(dāng)作一個(gè)行向量,每個(gè)元素對(duì)應(yīng)一個(gè)字符,其標(biāo)識(shí)方法和數(shù)值向元素對(duì)應(yīng)一個(gè)字符,其標(biāo)識(shí)方法和數(shù)值向量相同。也可以建立多行字符串矩陣。量相同。也可以建立多行字符串矩陣。字符串是以字符串是以ASCII碼形式存儲(chǔ)的

47、。碼形式存儲(chǔ)的。abs和和double函數(shù)都可以用來(lái)獲取字符串矩陣所函數(shù)都可以用來(lái)獲取字符串矩陣所對(duì)應(yīng)的對(duì)應(yīng)的ASCII碼數(shù)值矩陣。相反,碼數(shù)值矩陣。相反,char函數(shù)函數(shù)可以把可以把ASCII碼矩陣轉(zhuǎn)換為字符串矩陣。碼矩陣轉(zhuǎn)換為字符串矩陣。例例2-13 建立一個(gè)字符串向量,然后對(duì)該向量建立一個(gè)字符串向量,然后對(duì)該向量做如下處理:做如下處理:(1) 取第取第15個(gè)字符組成的子字符串。個(gè)字符組成的子字符串。(2) 將字符串倒過(guò)來(lái)重新排列。將字符串倒過(guò)來(lái)重新排列。(3) 將字符串中的小寫(xiě)字母變成相應(yīng)的大寫(xiě)將字符串中的小寫(xiě)字母變成相應(yīng)的大寫(xiě)字母,其余字符不變。字母,其余字符不變。(4) 統(tǒng)計(jì)字符串中

48、小寫(xiě)字母的個(gè)數(shù)。統(tǒng)計(jì)字符串中小寫(xiě)字母的個(gè)數(shù)。命令如下:命令如下:ch=ABc123d4e56Fg9;subch=ch(1:5) %取子字符串取子字符串revch=ch(end:-1:1) %將字符串倒排將字符串倒排k=find(ch=a&ch=z); %找小寫(xiě)字母的位置找小寫(xiě)字母的位置ch(k)=ch(k)-(a-A); %將小寫(xiě)字母變成相應(yīng)將小寫(xiě)字母變成相應(yīng)的大寫(xiě)字母的大寫(xiě)字母char(ch) length(k) %統(tǒng)計(jì)小寫(xiě)字母的個(gè)數(shù)統(tǒng)計(jì)小寫(xiě)字母的個(gè)數(shù) 與字符串有關(guān)的另一個(gè)重要函數(shù)是與字符串有關(guān)的另一個(gè)重要函數(shù)是eval,其調(diào)用,其調(diào)用格式為:格式為: eval(t)其中其中t為字符

49、串。它的作用是把字符串的內(nèi)容作為對(duì)為字符串。它的作用是把字符串的內(nèi)容作為對(duì)應(yīng)的應(yīng)的MATLAB語(yǔ)句來(lái)執(zhí)行。語(yǔ)句來(lái)執(zhí)行。2.7 結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)2.7.1 結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)1結(jié)構(gòu)矩陣的建立與引用結(jié)構(gòu)矩陣的建立與引用結(jié)構(gòu)矩陣的元素可以是不同的數(shù)據(jù)類(lèi)型,結(jié)構(gòu)矩陣的元素可以是不同的數(shù)據(jù)類(lèi)型,它能將一組具有不同屬性的數(shù)據(jù)納入到一它能將一組具有不同屬性的數(shù)據(jù)納入到一個(gè)統(tǒng)一的變量名下進(jìn)行管理。建立一個(gè)結(jié)個(gè)統(tǒng)一的變量名下進(jìn)行管理。建立一個(gè)結(jié)構(gòu)矩陣可采用給結(jié)構(gòu)成員賦值的辦法。具構(gòu)矩陣可采用給結(jié)構(gòu)成員賦值的辦法。具體格式為:體格式為:結(jié)構(gòu)矩陣名結(jié)構(gòu)矩陣名.成員名成員名=表達(dá)式表達(dá)式其中表達(dá)式應(yīng)

50、理解為矩陣表達(dá)式。其中表達(dá)式應(yīng)理解為矩陣表達(dá)式。2結(jié)構(gòu)成員的修改結(jié)構(gòu)成員的修改可以根據(jù)需要增加或刪除結(jié)構(gòu)的成員。例如要給結(jié)構(gòu)矩陣可以根據(jù)需要增加或刪除結(jié)構(gòu)的成員。例如要給結(jié)構(gòu)矩陣a增加一個(gè)成員增加一個(gè)成員x4,可給,可給a中任意一個(gè)元素增加成員中任意一個(gè)元素增加成員x4:a(1).x4=410075;但其他成員均為空矩陣,可以使用賦值語(yǔ)句給它賦確定的但其他成員均為空矩陣,可以使用賦值語(yǔ)句給它賦確定的值。值。要?jiǎng)h除結(jié)構(gòu)的成員,則可以使用要?jiǎng)h除結(jié)構(gòu)的成員,則可以使用rmfield函數(shù)來(lái)完成。例如,函數(shù)來(lái)完成。例如,刪除成員刪除成員x4:a=rmfield(a,x4);3關(guān)于結(jié)構(gòu)的函數(shù)關(guān)于結(jié)構(gòu)的函數(shù)

51、除了一般的結(jié)構(gòu)數(shù)據(jù)的操作外,除了一般的結(jié)構(gòu)數(shù)據(jù)的操作外,MATLAB還提供了部分還提供了部分函數(shù)來(lái)進(jìn)行結(jié)構(gòu)矩陣的操作。函數(shù)來(lái)進(jìn)行結(jié)構(gòu)矩陣的操作。2.7.2 單元數(shù)據(jù)單元數(shù)據(jù)1單元矩陣的建立與引用單元矩陣的建立與引用建立單元矩陣和一般矩陣相似,只是矩陣元素用建立單元矩陣和一般矩陣相似,只是矩陣元素用大括號(hào)括起來(lái)。大括號(hào)括起來(lái)??梢杂脦в写罄ㄌ?hào)下標(biāo)的形式引用單元矩陣元素??梢杂脦в写罄ㄌ?hào)下標(biāo)的形式引用單元矩陣元素。例如例如b3,3。單元矩陣的元素可以是結(jié)構(gòu)或單元。單元矩陣的元素可以是結(jié)構(gòu)或單元數(shù)據(jù)。數(shù)據(jù)??梢允褂每梢允褂胏elldisp函數(shù)來(lái)顯示整個(gè)單元矩陣,如函數(shù)來(lái)顯示整個(gè)單元矩陣,如celld

52、isp(b)。還可以刪除單元矩陣中的某個(gè)元素。還可以刪除單元矩陣中的某個(gè)元素。2關(guān)于單元的函數(shù)關(guān)于單元的函數(shù)MATLAB還提供了部分函數(shù)用于單元的操作。還提供了部分函數(shù)用于單元的操作。2.8 稀疏矩陣稀疏矩陣2.8.1 矩陣存儲(chǔ)方式矩陣存儲(chǔ)方式MATLAB的矩陣有兩種存儲(chǔ)方式:完全存的矩陣有兩種存儲(chǔ)方式:完全存儲(chǔ)方式和稀疏存儲(chǔ)方式。儲(chǔ)方式和稀疏存儲(chǔ)方式。1完全存儲(chǔ)方式完全存儲(chǔ)方式完全存儲(chǔ)方式是將矩陣的全部元素按列存完全存儲(chǔ)方式是將矩陣的全部元素按列存儲(chǔ)。以前講到的矩陣的存儲(chǔ)方式都是按這儲(chǔ)。以前講到的矩陣的存儲(chǔ)方式都是按這個(gè)方式存儲(chǔ)的,此存儲(chǔ)方式對(duì)稀疏矩陣也個(gè)方式存儲(chǔ)的,此存儲(chǔ)方式對(duì)稀疏矩陣也適用。適用。2稀疏存儲(chǔ)方式稀疏存儲(chǔ)方式稀疏存儲(chǔ)方式僅存儲(chǔ)矩陣所有的非零元素稀疏存儲(chǔ)方式僅存儲(chǔ)矩陣所有的非零元素的值及其位置,即行號(hào)和列號(hào)。在的值及其位置,即行號(hào)和列號(hào)。在MATLAB中,稀疏存儲(chǔ)方式也是按列存儲(chǔ)中,稀疏存儲(chǔ)方式也是按列存儲(chǔ)的。的。注意,在講稀疏矩陣時(shí),有兩個(gè)不同的概注意,在講稀疏矩陣時(shí),有兩個(gè)不同的概念,一是指矩陣的念,一是指矩陣的0元素較多,該矩陣是一元素較多,該矩陣是一個(gè)具有稀疏特征的矩陣,二是指采用稀疏個(gè)具有稀疏特征的矩陣,二是指采用稀疏方式存儲(chǔ)的矩陣。方式存儲(chǔ)的矩陣。2.8.2 稀疏存儲(chǔ)方式的產(chǎn)生稀疏存儲(chǔ)方式的產(chǎn)生1將完全存儲(chǔ)方式轉(zhuǎn)化為稀疏存儲(chǔ)方式將完全存

溫馨提示

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

評(píng)論

0/150

提交評(píng)論