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

下載本文檔

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

文檔簡介

1、第2章 MATLAB矩陣及其運算u MATLAB變量和數(shù)據(jù)操作u MATLAB矩陣及其操作u MATLAB運算與矩陣分析u 字符串、結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)u MATLAB稀疏矩陣及其操作2.1 變量和數(shù)據(jù)操作變量和數(shù)據(jù)操作 矩陣矩陣是是MATLAB最基本的數(shù)據(jù)對象和單位,運算定義最基本的數(shù)據(jù)對象和單位,運算定義在復(fù)數(shù)域。在復(fù)數(shù)域。2.1.1 變量與賦值變量與賦值1變量命名變量命名 變量名以變量名以字母開頭字母開頭,后接,后接字母、數(shù)字或下劃線字母、數(shù)字或下劃線的字符的字符序列,最多序列,最多63個字符。個字符。 a3,cu6s,pu_tl ,均合法。均合法。 5b,tl-g,-tdk,均非法。,均

2、非法。 在在MATLAB中,變量名中,變量名區(qū)分字母的大小寫區(qū)分字母的大小寫。 china,China,CHINA表示不同的變量表示不同的變量2賦值語句賦值語句 (1) 變量變量=表達(dá)式表達(dá)式 (2)表達(dá)式)表達(dá)式 表達(dá)式表達(dá)式用運算符將有關(guān)運算量連接起來的用運算符將有關(guān)運算量連接起來的式子,其結(jié)果是一個矩陣。式子,其結(jié)果是一個矩陣。 若無變量,如(若無變量,如(2),則表達(dá)式的值賦給預(yù)定),則表達(dá)式的值賦給預(yù)定義變量義變量ans。賦值語句最后加賦值語句最后加分號(;)分號(;),則不顯示運算結(jié)果。,則不顯示運算結(jié)果。以以%開頭的語句是注釋行或注釋內(nèi)容。開頭的語句是注釋行或注釋內(nèi)容。例例2-1

3、 計算表達(dá)式的值,并顯示計算結(jié)果。計算表達(dá)式的值,并顯示計算結(jié)果。在在MATLAB命令窗口輸入命令:命令窗口輸入命令:x=1+2*i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y) 其中其中pi和和i都是都是MATLAB預(yù)定義變量,分別代預(yù)定義變量,分別代表代表圓周率表代表圓周率和虛數(shù)單位。和虛數(shù)單位。 輸出顯示結(jié)果是:輸出顯示結(jié)果是:z= -0.3488 + 0.3286i2.1.2 預(yù)定義變量預(yù)定義變量 MATLAB工作空間駐留的由工作空間駐留的由系統(tǒng)定義的變量。系統(tǒng)定義的變量。 例如例如pi表示圓周率表示圓周率的近的近似值,似值

4、,i,j表示虛數(shù)單位。表示虛數(shù)單位。 預(yù)定義變量有特定含義,預(yù)定義變量有特定含義,在使用時應(yīng)盡量避免對這些在使用時應(yīng)盡量避免對這些變量重新賦值。變量重新賦值。常 量常量的功能常 量常量的功能ans用作結(jié)果的默認(rèn)變量nargin函數(shù)的輸入?yún)?shù)個數(shù)beep使計算機發(fā)出“嘟嘟”聲nargout函數(shù)的輸出參數(shù)個數(shù)pi圓周率varagin可變函數(shù)輸入?yún)?shù)個數(shù)eps機器零閾值正極小值varagout可變函數(shù)輸出參數(shù)個數(shù)inf無窮大realmin最小的正浮點數(shù)NaN或nan不定數(shù)realmax最大正浮點數(shù)i或j復(fù)數(shù)單位bitmax最大正整數(shù) epsans = 2.2204e-016 bitmaxans =

5、9.0072e+0152.1.3 內(nèi)存變量的管理內(nèi)存變量的管理1內(nèi)存變量的刪除與修改內(nèi)存變量的刪除與修改 MATLAB工作空間窗口工作空間窗口專門用于內(nèi)存變量的管理,專門用于內(nèi)存變量的管理,在該窗口中可以顯示所有內(nèi)存變量的屬性。在該窗口中可以顯示所有內(nèi)存變量的屬性。 當(dāng)選中某些變量,單擊當(dāng)選中某些變量,單擊Delete按鈕,可以刪除這些變量。按鈕,可以刪除這些變量。 當(dāng)選中某些變量,單擊當(dāng)選中某些變量,單擊Open Selection按鈕,可進(jìn)入按鈕,可進(jìn)入變量編輯器。通過變量編輯器可以直接觀察變量中的具體變量編輯器。通過變量編輯器可以直接觀察變量中的具體元素(值),也可修改變量中的元素(值)

6、。元素(值),也可修改變量中的元素(值)。 who和和whos這兩個命令用于顯示在這兩個命令用于顯示在MATLAB工作工作空間中已經(jīng)駐留的變量名清單??臻g中已經(jīng)駐留的變量名清單。 who命令只顯示出駐留變量的名稱。命令只顯示出駐留變量的名稱。 whos在給出變量名的同時,還給出它們的大小、在給出變量名的同時,還給出它們的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型等信息。所占字節(jié)數(shù)及數(shù)據(jù)類型等信息。 clear命令用于刪除命令用于刪除MATLAB工作空間中的變量。工作空間中的變量。2變量編輯器可創(chuàng)建較大矩陣變量編輯器可創(chuàng)建較大矩陣 (1)在命令窗口給變量賦值空矩陣。在命令窗口給變量賦值空矩陣。 a= (2)在工

7、作空間打開該變量。在工作空間打開該變量。 (3)在變量編輯窗的空白方格中填寫元在變量編輯窗的空白方格中填寫元素值。素值。2內(nèi)存變量文件內(nèi)存變量文件 可以使用擴(kuò)展名是可以使用擴(kuò)展名是.mat的二進(jìn)制格式文件,的二進(jìn)制格式文件,把當(dāng)前把當(dāng)前MATLAB工作空間中的一些有用變量長久工作空間中的一些有用變量長久地保留下來。地保留下來。 MAT文件的生成和裝入由文件的生成和裝入由save和和load命令來命令來完成。常用格式為:完成。常用格式為:save 文件名文件名 變量名表變量名表 -append-ascii save mydata st mb 文件名文件名 變量名變量名1 變量名變量名2 load

8、 文件名文件名 變量名表變量名表 -ascii load mydata st和和mb成為已知。成為已知。 文件名可以帶路徑,但不需帶擴(kuò)展名文件名可以帶路徑,但不需帶擴(kuò)展名.mat,命令默認(rèn)對命令默認(rèn)對.mat文件進(jìn)行操作。文件進(jìn)行操作。 變量名表中的變量個數(shù)不限,只要內(nèi)存或文變量名表中的變量個數(shù)不限,只要內(nèi)存或文件中存在即可,變量名之間以空格分隔。當(dāng)變量件中存在即可,變量名之間以空格分隔。當(dāng)變量名表省略時,保存或裝入全部變量。名表省略時,保存或裝入全部變量。 -ascii選項使文件以選項使文件以ASCII格式處理,省略該選格式處理,省略該選項時文件將以二進(jìn)制格式處理。項時文件將以二進(jìn)制格式處理

9、。 -append選項控制將變量追加到選項控制將變量追加到MAT文件中。文件中。2.1.4 數(shù)據(jù)的輸出格式數(shù)據(jù)的輸出格式 MATLAB用十進(jìn)制數(shù)表示一個常數(shù),可采用日常記數(shù)法和科學(xué)記數(shù)用十進(jìn)制數(shù)表示一個常數(shù),可采用日常記數(shù)法和科學(xué)記數(shù)法兩種表示方法。法兩種表示方法。 一般一般MATLAB內(nèi)部每一個數(shù)據(jù)元素都是用雙精度數(shù)來表示和存儲的。內(nèi)部每一個數(shù)據(jù)元素都是用雙精度數(shù)來表示和存儲的。 數(shù)據(jù)輸出時可用數(shù)據(jù)輸出時可用format命令設(shè)置或改變數(shù)據(jù)輸出格式。命令設(shè)置或改變數(shù)據(jù)輸出格式。format命令命令的格式為:的格式為: format 格式符格式符 其中其中格式符格式符決定數(shù)據(jù)的輸出格式?jīng)Q定數(shù)據(jù)的

10、輸出格式format short 4位小數(shù)位,位小數(shù)位,7位有效數(shù)。大于位有效數(shù)。大于1000實數(shù),用實數(shù),用5位有效數(shù)科位有效數(shù)科 學(xué)記數(shù)法輸出。學(xué)記數(shù)法輸出。 例:例:3.1416format long15位有效數(shù)輸出。例:位有效數(shù)輸出。例:3.14159265358979format short e 5位有效數(shù)字科學(xué)記數(shù)法輸出位有效數(shù)字科學(xué)記數(shù)法輸出 例:例:3.1415e=+016其他格式符:其他格式符:long e, short g, long g, rat , hex,bank等等。等等。2.1.5 MATLAB常用數(shù)學(xué)函數(shù)常用數(shù)學(xué)函數(shù)MATLAB提供了許多數(shù)學(xué)函數(shù),函數(shù)的自變量規(guī)

11、提供了許多數(shù)學(xué)函數(shù),函數(shù)的自變量規(guī)定為定為矩陣變量矩陣變量,運算法則是將函數(shù)逐項作用于矩陣,運算法則是將函數(shù)逐項作用于矩陣的元素上,因而運算的結(jié)果是一個與自變量同維數(shù)的元素上,因而運算的結(jié)果是一個與自變量同維數(shù)的矩陣。的矩陣。函數(shù)使用說明:函數(shù)使用說明:(1) 三角函數(shù)以弧度為單位計算。三角函數(shù)以弧度為單位計算。(2) abs函數(shù)可以求實數(shù)的絕對值、復(fù)數(shù)的模、字符函數(shù)可以求實數(shù)的絕對值、復(fù)數(shù)的模、字符串的串的ASCII碼值。碼值。(3) 用于取整的函數(shù)有用于取整的函數(shù)有fix、floor、ceil、round,要,要注意它們的區(qū)別。注意它們的區(qū)別。(4) rem與與mod函數(shù)的區(qū)別。函數(shù)的區(qū)別

12、。rem(x,y)和和mod(x,y)要要求求x,y必須為相同大小的實矩陣或為標(biāo)量。必須為相同大小的實矩陣或為標(biāo)量。2.2 MATLAB矩陣表示矩陣表示2.2.1 矩陣的建立矩陣的建立1直接輸入法直接輸入法 最簡單的建立矩陣的方法是從鍵盤直接輸入最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。具體方法如下:將矩陣的元素用方矩陣的元素。具體方法如下:將矩陣的元素用方括號括號 括起來,按矩陣行的順序輸入各元素,同括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用一行的各元素之間用空格空格或或逗號逗號分隔,不同行的分隔,不同行的元素之間用元素之間用分號分號分隔。分隔。 a=1,2,3;4,5,

13、6;7,8,92利用利用M文件建立矩陣文件建立矩陣 較大且較復(fù)雜的矩陣,可以為它專門建立一較大且較復(fù)雜的矩陣,可以為它專門建立一個矩陣個矩陣M文件。文件。 例例2-2 利用利用M文件建立文件建立MYMAT矩陣。矩陣。(1) 啟動有關(guān)編輯程序或啟動有關(guān)編輯程序或MATLAB文本編輯器,文本編輯器,并輸入待建矩陣:并輸入待建矩陣: (2) 把輸入的內(nèi)容以純文本方式存盤把輸入的內(nèi)容以純文本方式存盤(設(shè)文件名為設(shè)文件名為mymatrix.m)。 (3) 在在MATLAB命令窗口中輸入命令窗口中輸入mymatrix,即運,即運行該行該M文件,就會自動建立一個名為文件,就會自動建立一個名為MYMAT的的矩

14、陣,可供以后使用。矩陣,可供以后使用。3建立大矩陣建立大矩陣 大矩陣可由方括號中的小矩陣或向量建立起來。大矩陣可由方括號中的小矩陣或向量建立起來。 a=1,2,3;4,5,6;7,8,9 c=a,eye(3);ones(3),a c= 6x64冒號表達(dá)式冒號表達(dá)式 利用冒號表達(dá)式產(chǎn)生一個行向量,一般格式是:利用冒號表達(dá)式產(chǎn)生一個行向量,一般格式是: e1:e2:e3 其中其中e1為初始值,為初始值,e2為步長為步長(e2省略為省略為1),e3為終止值。為終止值。 x=0:1:6 x=0 1 2 3 4 5 6 還可以用還可以用linspace函數(shù)產(chǎn)生行向量。其調(diào)用格式為:函數(shù)產(chǎn)生行向量。其調(diào)用

15、格式為: linspace(a,b,n)其中其中a和和b是生成向量的第一個和最后一個元素,是生成向量的第一個和最后一個元素,n是元素是元素總數(shù)總數(shù)(n省略為省略為100) 。 linspace(a,b,n)與與a:(b-a)/(n-1):b等價。等價。 y=linspace(0,9,10) y=0 1 2 3 4 5 6 7 8 92.2.2 矩陣的拆分矩陣的拆分1矩陣元素的引用方式矩陣元素的引用方式 允許對矩陣的單個元素進(jìn)行賦值和操作,例如允許對矩陣的單個元素進(jìn)行賦值和操作,例如 c(3,3)=99 矩陣元素的序號就是相應(yīng)元素在內(nèi)存中的排列順序。矩陣元素的序號就是相應(yīng)元素在內(nèi)存中的排列順序。

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

17、示表示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運算符來表示矩陣下運算符來表示矩陣下標(biāo),從而獲得子矩陣。標(biāo),從而獲得子矩陣。end表示某一維的末尾元素表示某一維的末尾元素下標(biāo)。下標(biāo)。3.

18、利用空矩陣刪除矩陣的元素利用空矩陣刪除矩陣的元素在在MATLAB中,定義中,定義 為空矩陣。給變量為空矩陣。給變量X賦賦空矩陣的語句為空矩陣的語句為X= 。 注意,注意,X= 與與clear X不同,不同,clear是將是將X從工作從工作空間中刪除,而空矩陣則存在于工作空間中,空間中刪除,而空矩陣則存在于工作空間中,只是維數(shù)為只是維數(shù)為0。4改變矩陣的形狀改變矩陣的形狀 reshape(A,m,n)函數(shù)在矩陣總元素保持不變的前提函數(shù)在矩陣總元素保持不變的前提下,將矩陣下,將矩陣A重新排成重新排成mn的二維矩陣。的二維矩陣。注意:注意: 在在MATLAB中,矩陣元素中,矩陣元素按列存儲按列存儲,

19、即首先存,即首先存儲矩陣的第儲矩陣的第1列元素,然后存儲第列元素,然后存儲第2列元素,列元素,一直到矩陣的最后一列元素。一直到矩陣的最后一列元素。 reshape函數(shù)只是改變原矩陣的行數(shù)和列數(shù),即改函數(shù)只是改變原矩陣的行數(shù)和列數(shù),即改變其邏輯結(jié)構(gòu),但并不改變原矩陣元素個數(shù)及其存變其邏輯結(jié)構(gòu),但并不改變原矩陣元素個數(shù)及其存儲結(jié)構(gòu)。儲結(jié)構(gòu)。 2.2.3 特殊矩陣特殊矩陣1通用的特殊矩陣通用的特殊矩陣常用的產(chǎn)生通用特殊矩陣的函數(shù)有:常用的產(chǎn)生通用特殊矩陣的函數(shù)有:zeros:產(chǎn)生全:產(chǎn)生全0矩陣矩陣(零矩陣零矩陣)。ones:產(chǎn)生全:產(chǎn)生全1矩陣矩陣(幺矩陣幺矩陣)。eye:產(chǎn)生單位矩陣。:產(chǎn)生單位

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

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

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

23、M=100+magic(5) (2) 范得蒙矩陣范得蒙矩陣范得蒙范得蒙(Vandermonde)矩陣最后一列全為矩陣最后一列全為1,倒數(shù),倒數(shù)第二列為一個指定的向量,其他各列是其后列與第二列為一個指定的向量,其他各列是其后列與倒數(shù)第二列的點乘積。可以用一個指定向量生成倒數(shù)第二列的點乘積。可以用一個指定向量生成一個范得蒙矩陣。在一個范得蒙矩陣。在MATLAB中,函數(shù)中,函數(shù)vander(V)生成以向量生成以向量V為基礎(chǔ)向量的范得蒙矩陣。例如,為基礎(chǔ)向量的范得蒙矩陣。例如,A=vander(1;2;3;5)即可得到上述范得蒙矩陣。即可得到上述范得蒙矩陣。(3) 希爾伯特矩陣希爾伯特矩陣在在MATL

24、AB中,生成希爾伯特矩陣的函數(shù)是中,生成希爾伯特矩陣的函數(shù)是hilb(n)。使用一般方法求逆會因為原始數(shù)據(jù)的微小擾動而使用一般方法求逆會因為原始數(shù)據(jù)的微小擾動而產(chǎn)生不可靠的計算結(jié)果。產(chǎn)生不可靠的計算結(jié)果。MATLAB中,有一個專中,有一個專門求希爾伯特矩陣的逆的函數(shù)門求希爾伯特矩陣的逆的函數(shù)invhilb(n),其功能,其功能是求是求n階的希爾伯特矩陣的逆矩陣。階的希爾伯特矩陣的逆矩陣。例例2-6 求求4階希爾伯特矩陣及其逆矩陣。階希爾伯特矩陣及其逆矩陣。命令如下:命令如下:format rat %以有理形式輸出以有理形式輸出H=hilb(4)H=invhilb(4) (4) 托普利茲矩陣托普

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

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

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

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

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

30、10.5,25,則,則a/5=5a=2.1000 5.0000。對于矩陣來說,左除和右除表示。對于矩陣來說,左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對于矩陣運算,兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對于矩陣運算,一般一般ABB/A。 (4) 矩陣的乘方矩陣的乘方 一個矩陣的乘方運算可以表示成一個矩陣的乘方運算可以表示成Ax,要求,要求A為為方陣,方陣,x為標(biāo)量。為標(biāo)量。2點運算點運算 在在MATLAB中,有一種特殊的運算,因為其運中,有一種特殊的運算,因為其運算符是在有關(guān)算術(shù)運算符前面加點,所以叫點運算符是在有關(guān)算術(shù)運算符前面加點,所以叫點運算。點運算符有算。點運算符有.*、./

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

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

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

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

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

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

37、1) 建立矩陣建立矩陣A。A=4,-65,-54,0,6;56,0,67,-45,0 (2) 找出大于找出大于4的元素的位置。的元素的位置。find(A4)2.4 矩陣分析2.4.1 對角陣與三角陣1對角陣只有對角線上有非0元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數(shù)量矩陣,對角線上的元素都為1的對角矩陣稱為單位矩陣。(1) 提取矩陣的對角線元素設(shè)A為mn矩陣,diag(A)函數(shù)用于提取矩陣A主對角線元素,產(chǎn)生一個具有min(m,n)個元素的列向量。diag(A)函數(shù)還有一種形式diag(A,k),其功能是提取第k條對角線的元素。(2) 構(gòu)造對角矩陣設(shè)V為具有m個元素的向量,di

38、ag(V)將產(chǎn)生一個mm對角矩陣,其主對角線元素即為向量V的元素。diag(V)函數(shù)也有另一種形式diag(V,k),其功能是產(chǎn)生一個nn(n=m+)對角陣,其第k條對角線的元素即為向量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,對A的每行乘以一個指定常數(shù)2三角陣三角陣又進(jìn)一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角

39、陣則是對角線以上的元素全為0的一種矩陣。(1) 上三角矩陣求矩陣A的上三角陣的MATLAB函數(shù)是triu(A)。triu(A)函數(shù)也有另一種形式triu(A,k),其功能是求矩陣A的第k條對角線以上的元素。例如,提取矩陣A的第2條對角線以上的元素,形成新的矩陣B。(2) 下三角矩陣在MATLAB中,提取矩陣A的下三角矩陣的函數(shù)是tril(A)和tril(A,k),其用法與提取上三角矩陣的函數(shù)triu(A)和triu(A,k)完全相同。2.4.2 矩陣的轉(zhuǎn)置與旋轉(zhuǎn)1矩陣的轉(zhuǎn)置轉(zhuǎn)置運算符是單撇號()。2矩陣的旋轉(zhuǎn)利用函數(shù)rot90(A,k)將矩陣A旋轉(zhuǎn)90的k倍,當(dāng)k為1時可省略。3矩陣的左右翻轉(zhuǎn)

40、對矩陣實施左右翻轉(zhuǎn)是將原矩陣的第一列和最后一列調(diào)換,第二列和倒數(shù)第二列調(diào)換,依次類推。MATLAB對矩陣A實施左右翻轉(zhuǎn)的函數(shù)是fliplr(A)。4矩陣的上下翻轉(zhuǎn)MATLAB對矩陣A實施上下翻轉(zhuǎn)的函數(shù)是flipud(A)。2.4.3 矩陣的逆與偽逆1矩陣的逆對于一個方陣A,如果存在一個與其同階的方陣B,使得:AB=BA=I (I為單位矩陣)則稱B為A的逆矩陣,當(dāng)然,A也是B的逆矩陣。求一個矩陣的逆是一件非常煩瑣的工作,容易出錯,但在MATLAB中,求一個矩陣的逆非常容易。求方陣A的逆矩陣可調(diào)用函數(shù)inv(A)。例2-11 用求逆矩陣的方法解線性方程組。Ax=b其解為:x=A-1b2矩陣的偽逆如

41、果矩陣A不是一個方陣,或者A是一個非滿秩的方陣時,矩陣A沒有逆矩陣,但可以找到一個與A的轉(zhuǎn)置矩陣A同型的矩陣B,使得:ABA=ABAB=B此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆矩陣。在MATLAB中,求一個矩陣偽逆的函數(shù)是pinv(A)。2.4.4 方陣的行列式把一個方陣看作一個行列式,并對其按行列式的規(guī)則求值,這個值就稱為矩陣所對應(yīng)的行列式的值。在MATLAB中,求方陣A所對應(yīng)的行列式的值的函數(shù)是det(A)。2.4.5 矩陣的秩與跡1矩陣的秩矩陣線性無關(guān)的行數(shù)與列數(shù)稱為矩陣的秩。在MATLAB中,求矩陣秩的函數(shù)是rank(A)。2矩陣的跡矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征

42、值之和。在MATLAB中,求矩陣的跡的函數(shù)是trace(A)。2.4.6 向量和矩陣的范數(shù)矩陣或向量的范數(shù)用來度量矩陣或向量在某種意義下的長度。范數(shù)有多種方法定義,其定義不同,范數(shù)值也就不同。1向量的3種常用范數(shù)及其計算函數(shù)在MATLAB中,求向量范數(shù)的函數(shù)為:(1) norm(V)或norm(V,2):計算向量V的2范數(shù)。(2) norm(V,1):計算向量V的1范數(shù)。(3) norm(V,inf):計算向量V的范數(shù)。2矩陣的范數(shù)及其計算函數(shù)MATLAB提供了求3種矩陣范數(shù)的函數(shù),其函數(shù)調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同。2.4.7 矩陣的條件數(shù)在MATLAB中,計算矩陣A的3種條件數(shù)的函

43、數(shù)是:(1) cond(A,1) 計算A的1范數(shù)下的條件數(shù)。(2) cond(A)或cond(A,2) 計算A的2范數(shù)數(shù)下的條件數(shù)。(3) cond(A,inf) 計算A的 范數(shù)下的條件數(shù)。2.4.8 矩陣的特征值與特征向量在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的特征值和特征向量,

44、而格式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) %直接求多項式p的零點2.5 矩陣的超越函數(shù)1矩陣平方根sqrtmsqrtm(A)計算矩陣A的平方根。2矩陣對數(shù)logmlogm(A)計算矩陣A的自然對數(shù)。此函數(shù)輸入?yún)?shù)的條件與輸出結(jié)果間的關(guān)系和函數(shù)sqrtm(A)完全一樣3矩陣指數(shù)expm、expm1、expm2、expm3expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都

45、求矩陣指數(shù)eA。4普通矩陣函數(shù)funmfunm(A,fun)用來計算直接作用于矩陣A的由fun指定的超越函數(shù)值。當(dāng)fun取sqrt時,funm(A,sqrt)可以計算矩陣A的平方根,與sqrtm(A)的計算結(jié)果一樣。 2.6 字符串在MATLAB中,字符串是用單撇號括起來的字符序列。MATLAB將字符串當(dāng)作一個行向量,每個元素對應(yīng)一個字符,其標(biāo)識方法和數(shù)值向量相同。也可以建立多行字符串矩陣。字符串是以ASCII碼形式存儲的。abs和double函數(shù)都可以用來獲取字符串矩陣所對應(yīng)的ASCII碼數(shù)值矩陣。相反,char函數(shù)可以把ASCII碼矩陣轉(zhuǎn)換為字符串矩陣。例2-13 建立一個字符串向量,然后

46、對該向量做如下處理:(1) 取第15個字符組成的子字符串。(2) 將字符串倒過來重新排列。(3) 將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。(4) 統(tǒng)計字符串中小寫字母的個數(shù)。命令如下:ch= ABc123d4e56Fg9 ;subch=ch(1:5) %取子字符串revch=ch(end:-1:1) %將字符串倒排k=find(ch=a &ch=z ); %找小寫字母的位置ch(k)=ch(k)-(a -A ); %將小寫字母變成相應(yīng)的大寫字母char(ch) length(k) %統(tǒng)計小寫字母的個數(shù) 與字符串有關(guān)的另一個重要函數(shù)是eval,其調(diào)用格式為: eval(t)其中t為字符串。它的作用是把字符串的內(nèi)容作為對應(yīng)的MATLAB語句來執(zhí)行。2.7 結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)2.7.1 結(jié)構(gòu)數(shù)據(jù)1結(jié)構(gòu)矩陣的建立與引用結(jié)構(gòu)矩陣的元素可以是不同的數(shù)據(jù)類型,它能將一組具有不同屬性的數(shù)據(jù)納入到一個統(tǒng)一的變量名下進(jìn)行管理。建立一個結(jié)構(gòu)矩陣可采用給結(jié)構(gòu)成員賦值的辦法。具體格式為:結(jié)構(gòu)矩陣名.成員名=表達(dá)式其中表達(dá)式應(yīng)理解為矩陣表達(dá)式。2結(jié)構(gòu)成員的修改可以根據(jù)需要增加或刪除結(jié)構(gòu)的成員。例如要給結(jié)構(gòu)矩陣a增加一個成員x4,可給a中任意一個元素增加成員x4:a(1).x4=410075;但其他成員均為空矩陣,可以使用賦值語句給它賦確定的值。要刪除結(jié)構(gòu)的成員,則可以使用rm

溫馨提示

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

最新文檔

評論

0/150

提交評論