




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章MATLAB矩陣及其運算2.1變量和數(shù)據(jù)操作
2.2MATLAB矩陣
2.3MATLAB運算
2.4矩陣分析
2.5矩陣的超越函數(shù)
2.6字符串
2.7結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)
2.8稀疏矩陣2.1變量和數(shù)據(jù)操作2.1.1變量與賦值
1.變量命名
在MATLAB6.5中,變量名是以字母開頭,后接字母、數(shù)字或下劃線的字符序列,最多63個字符。在MATLAB中,變量名區(qū)分字母的大小寫。2.賦值語句
(1)變量=表達(dá)式
(2)表達(dá)式
其中表達(dá)式是用運算符將有關(guān)運算量連接起來的式子,其結(jié)果是一個矩陣。
例2-1計算表達(dá)式的值,并顯示計算結(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ù)先定義的變量,分別代表代表圓周率π和虛數(shù)單位。
輸出結(jié)果是:
z=
-0.3488+0.3286i任何MATLAB的語句的執(zhí)行結(jié)果都可以在屏幕上顯示,同時賦值給指定的變量,沒有指定變量時,賦值給一個特殊的變量ans,數(shù)據(jù)的顯示格式由format命令控制。format只是影響結(jié)果的顯示,不影響其計算與存儲;MATLAB總是以雙字長浮點數(shù)(雙精度)來執(zhí)行所有的運算。2.1.2預(yù)定義變量在MATLAB工作空間中,還駐留幾個由系統(tǒng)本身定義的變量。預(yù)定義變量有特定的含義,在使用時,應(yīng)盡量避免對這些變量重新賦值。預(yù)定義變量含義預(yù)定義變量含義ans計算結(jié)果的缺省變量名NaN不定量,如0/0,∞/∞i、j虛數(shù)單位nargin函數(shù)的輸入變量個數(shù)pi圓周率nargout函數(shù)的輸出變量個數(shù)inf無窮大realmin最小正實數(shù)eps計算機的最小數(shù)realmax最大正實數(shù)2.1.3內(nèi)存變量的管理1.內(nèi)存變量的刪除與修改
MATLAB工作空間窗口專門用于內(nèi)存變量的管理。在工作空間窗口中可以顯示所有內(nèi)存變量的屬性。當(dāng)選中某些變量后,再單擊Delete按鈕,就能刪除這些變量。當(dāng)選中某些變量后,再單擊Open按鈕,將進(jìn)入變量編輯器。通過變量編輯器可以直接觀察變量中的具體元素,也可修改變量中的具體元素。clear命令用于刪除MATLAB工作空間中的變量。who和whos這兩個命令用于顯示在MATLAB工作空間中已經(jīng)駐留的變量名清單。who命令只顯示出駐留變量的名稱,whos在給出變量名的同時,還給出它們的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型等信息。其中,文件名可以帶路徑,但不需帶擴展名.mat,命令隱含一定對.mat文件進(jìn)行操作。變量名表中的變量個數(shù)不限,只要內(nèi)存或文件中存在即可,變量名之間以空格分隔。當(dāng)變量名表省略時,保存或裝入全部變量。-ascii選項使文件以ASCII格式處理,省略該選項時文件將以二進(jìn)制格式處理。save命令中的-append選項控制將變量追加到MAT文件中。
MATLAB提供了許多數(shù)學(xué)函數(shù),函數(shù)的自變量規(guī)定為矩陣變量,運算法則是將函數(shù)逐項作用于矩陣的元素上,因而運算的結(jié)果是一個與自變量同維數(shù)的矩陣。
函數(shù)使用說明:
(1)三角函數(shù)以弧度為單位計算。
(2)abs函數(shù)可以求實數(shù)的絕對值、復(fù)數(shù)的模、字符串的ASCII碼值。
(3)用于取整的函數(shù)有fix、floor、ceil、round,要注意它們的區(qū)別。
(4)rem與mod函數(shù)的區(qū)別。rem(x,y)和mod(x,y)要求x,y必須為相同大小的實矩陣或為標(biāo)量。2.內(nèi)內(nèi)存變變量文文件利利用用MAT文文件可可以把把當(dāng)前前MATLAB工作作空間間中的的一些些有用用變量量長久久地保保留下下來,,擴展展名是是.mat。MAT文件件的生生成和和裝入入由save和和load命令令來完完成。。常用用格式式為::save文文件件名[變變量名名表][-append][-ascii]load文文件名名[變變量名名表][-ascii]2.1.5數(shù)數(shù)據(jù)據(jù)的輸輸出格格式MATLAB用用十進(jìn)進(jìn)制數(shù)數(shù)表示示一個個常數(shù)數(shù),具具體可可采用用日常常記數(shù)數(shù)法和和科學(xué)學(xué)記數(shù)數(shù)法兩兩種表表示方方法。。在在一般般情況況下,,MATLAB內(nèi)部部每一一個數(shù)數(shù)據(jù)元元素都都是用用雙精精度數(shù)數(shù)來表表示和和存儲儲的。。數(shù)據(jù)據(jù)輸出出時用用戶可可以用用format命令令設(shè)置置或改改變數(shù)數(shù)據(jù)輸輸出格格式。。format命令令的格格式為為:format格格式式符其其中中格式式符決決定數(shù)數(shù)據(jù)的的輸出出格式式如果結(jié)結(jié)果為為整數(shù)數(shù),則則顯示示沒有有小數(shù)數(shù);如如果結(jié)結(jié)果不不是整整數(shù),,則用戶可可以用用format命令令設(shè)置置或改改變輸輸出格格式。。短格式式(Short)::默認(rèn)認(rèn)格式式1.33330.0000短格式式e方方式(Shorte):1.3333e+001.2345e-06短格式式g方方式(Shortg):1.33330.0長格式式(Long):1.333333333333330.00000123450000長格式式e方方式(Longe)::1.33333333333333e+001.2345000000000e-06長格式式g方方式(Longg)::1.333333333333330.0000012345銀行格格式(Bank)::1.330.00十六進(jìn)進(jìn)制格格式(Hex):3ff5555555553eb46231abfd71+格式式(+)::++有理數(shù)數(shù)(Rational)):1/32469/20000000002.2MATLAB矩陣陣2.2.1矩矩陣陣的建建立1.直直接輸輸入法法直接輸輸入需需遵循循以下下基本本規(guī)則則:整個矩矩陣應(yīng)應(yīng)以““[]”為為首尾尾,即即整個個輸入入矩陣陣必須須包含含在方方括號號中;;矩陣陣中,,行與與行之之間必必須用用分號號“;;””或Enter鍵鍵((按按Enter鍵鍵)符符分隔隔;每每行中中的元元素用用逗號號“,,””或空空格分分隔;;矩陣陣中的的元素素可以以是數(shù)數(shù)字或或表達(dá)達(dá)式,,但表表達(dá)式式中不不可包包含未未知的的變量量,MATLAB用用表達(dá)達(dá)式的的值為為該位位置的的矩陣陣元素素賦值值。當(dāng)當(dāng)矩陣陣中沒沒有任任何元元素時時,該該矩陣陣被稱稱作““空空陣””(EmptyMatrix))。例2-2直直接輸輸入矩矩陣>>A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]A=12345678910111213141516利用表表達(dá)式式輸入入>>B=[1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16]B=159132610143711154812162.利利用M文件件建立立矩陣陣對于比比較大大且比比較復(fù)復(fù)雜的的矩陣陣,可可以為為它專專門建建立一一個M文件件。下下面通通過一一個簡簡單例例子來來說明明如何何利用用M文文件創(chuàng)創(chuàng)建矩矩陣。。3.利利用冒冒號表表達(dá)式式建立立一個個向量量冒號表表達(dá)式式可以以產(chǎn)生生一個個行向向量,,一般般格式式是::e1:e2:e3其其中e1為為初始始值,,e2為步步長,,e3為終終止值值。在在MATLAB中中,還還可以以用linspace函函數(shù)產(chǎn)產(chǎn)生行行向量量。其其調(diào)用用格式式為::linspace(a,b,n)其其中a和b是生生成向向量的的第一一個和和最后后一個個元素素,n是元元素總總數(shù)。。顯然,,linspace(a,b,n)與與a:(b-a)/(n-1):b等等價。。4.建建立大大矩陣陣大矩陣陣可由由方括括號中中的小小矩陣陣或向向量建建立起起來。。2.2.2矩矩陣陣的拆拆分1.矩矩陣元元素通過下下標(biāo)引引用矩矩陣的的元素素,例例如A(3,2)=200采采用矩矩陣元元素的的序號號來引引用矩矩陣元元素。。矩陣陣元素素的序序號就就是相相應(yīng)元元素在在內(nèi)存存中的的排列列順序序。在在MATLAB中,,矩陣陣元素素按列列存儲儲,先先第一一列,,再第第二列列,依依次類類推。。例如如A=[1,2,3;4,5,6];A(3)ans=2顯顯然然,序序號(Index)與下下標(biāo)(Subscript)是是一一一對應(yīng)應(yīng)的,,以m×n矩陣陣A為為例,,矩陣陣元素素A(i,j)的序序號為為(j-1)*m+i。。其相相互轉(zhuǎn)轉(zhuǎn)換關(guān)關(guān)系也也可利利用sub2ind和ind2sub函數(shù)數(shù)求得得。2.矩矩陣拆拆分(1)利利用冒冒號表表達(dá)式式獲得得子矩矩陣①①A(:,j)表示示取A矩陣陣的第第j列列全部部元素素;A(i,:)表表示A矩陣陣第i行的的全部部元素素;A(i,j)表表示取取A矩矩陣第第i行行、第第j列列的元元素。。②②A(i:i+m,:)表表示取取A矩矩陣第第i~~i+m行行的全全部元元素;;A(:,k:k+m)表示示取A矩陣陣第k~k+m列的的全部部元素素,A(i:i+m,k:k+m)表表示取取A矩矩陣第第i~~i+m行行內(nèi),,并在在第k~k+m列中中的所所有元元素。。此此外,,還可可利用用一般般向量量和end運算算符來來表示示矩陣陣下標(biāo)標(biāo),從從而獲獲得子子矩陣陣。end表示示某一一維的的末尾尾元素素下標(biāo)標(biāo)。(2)利利用空矩陣陣刪除矩陣陣的元素在在MATLAB中,定義義[]為空空矩陣。給給變量X賦賦空矩陣的的語句為X=[]。。注意,X=[]與與clearX不不同,clear是是將X從工工作空間中中刪除,而而空矩陣則則存在于工工作空間中中,只是維維數(shù)為0。。2.2.3特殊殊矩陣1.通用的的特殊矩陣陣常用的產(chǎn)生生通用特殊殊矩陣的函函數(shù)有:zeros:產(chǎn)生生全0矩陣陣(零矩陣陣)。ones::產(chǎn)生全1矩陣(幺幺矩陣)。。
eye:產(chǎn)生單單位矩陣。。
rand:產(chǎn)生生0~1間間均勻分布布的隨機矩矩陣。randn:產(chǎn)生均均值為0,,方差為1的標(biāo)準(zhǔn)正正態(tài)分布隨隨機矩陣。。例2-3分分別建建立3×3、3×2和與矩陣陣A同樣大大小的零矩矩陣。(1)建建立一個3×3零矩矩陣。zeros(3)(2)建建立一個3×2零矩矩陣。zeros(3,2)(3)設(shè)A為為2×3矩矩陣,則可可以用zeros(size(A))建立一個個與矩陣A同樣大小小零矩陣。。A=[123;456];%產(chǎn)生一個個2×3階階矩陣Azeros(size(A))%產(chǎn)產(chǎn)生一個與與矩陣A同同樣大小的的零矩陣。。例2-4建建立隨機機矩陣:(1)在在區(qū)間[20,50]內(nèi)均均勻分布的的5階隨機機矩陣。(2)均均值為0.6、方方差為0.1的5階階正態(tài)分布布隨機矩陣陣。
命令令如下:x=20+(50-20)*rand(5)
y=0.6+sqrt(0.1)*randn(5)此此外,常常用的函數(shù)數(shù)還有reshape(A,m,n),它在矩矩陣總元素素保持不變變的前提下下,按列將將矩陣A重重新排成m×n的二二維矩陣。。2.用于專專門學(xué)科的的特殊矩陣陣(1)魔魔方矩陣魔魔方矩陣陣有一個有有趣的性質(zhì)質(zhì),其每行行、每列及及兩條對角角線上的元元素和都相相等。對于于n階魔方方陣,其元元素由1,2,3,…,n2共n2個整數(shù)組成成。MATLAB提提供了求魔魔方矩陣的的函數(shù)magic(n),其其功能是生生成一個n階魔方陣陣。(n≠2!)例2-5將將101~125等25個數(shù)填入入一個5行行5列的表表格中,使使其每行每每列及對角角線的和均均為565。
M=100+magic(5)(2)范范得蒙矩陣陣
范得蒙蒙(Vandermonde)矩陣最最后一列全全為1,倒倒數(shù)第二列列為一個指指定的向量量,其他各各列是其前前列與倒數(shù)數(shù)第二列的的點乘積。??梢杂靡灰粋€指定向向量生成一一個范得蒙蒙矩陣。在在MATLAB中,,函數(shù)vander(V)生生成以向量量V為基礎(chǔ)礎(chǔ)向量的范范得蒙矩陣陣。例如,,A=vander([1;2;3;5])即即可得到上上述范得蒙蒙矩陣。(3)希希爾伯特矩矩陣在在MATLAB中,生成成希爾伯特特矩陣的函函數(shù)是hilb(n)。使使用一般方方法求逆會會因為原始始數(shù)據(jù)的微微小擾動而而產(chǎn)生不可可靠的計算算結(jié)果。MATLAB中,有有一個專門門求希爾伯伯特矩陣的的逆的函數(shù)數(shù)invhilb(n),其其功能是求求n階的希希爾伯特矩矩陣的逆矩矩陣。例2-6求求4階階希爾伯特特矩陣及其其逆矩陣。。
命令如如下:formatrat%以以有理形式式輸出H=hilb(4)
H=invhilb(4)(4)托托普利茲矩矩陣
托普普利茲(Toeplitz)矩陣除第第一行第一一列外,其其他每個元元素都與左左上角的元元素相同。。生成托普普利茲矩陣陣的函數(shù)是是toeplitz(x,y),它生生成一個以以x為第一一列,y為為第一行的的托普利茲茲矩陣。這這里x,y均為向向量,兩者者不必等長長。toeplitz(x)用向量x生成一個個對稱的托托普利茲矩矩陣。例如如
T=toeplitz(1:6)(5)伴伴隨矩陣MATLAB生成成伴隨矩陣陣的函數(shù)是是compan(p),其中中p是一個個多項式的的系數(shù)向量量,高次冪冪系數(shù)排在在前,低次次冪排在后后。例如,,為了求多多項式的x3-7x+6的伴隨矩矩陣,可使使用命令::
p=[1,0,-7,6];compan(p)(6)帕帕斯卡矩陣陣二二次次項(x+y)n展開后的系系數(shù)隨n的的增大組成成一個三角角形表,稱稱為楊輝三三角形。由由楊輝三角角形表組成成的矩陣稱稱為帕斯卡卡(Pascal)矩陣。函函數(shù)pascal(n)生成成一個n階階帕斯卡矩矩陣。例2-7求求(x+y)5的展開式。。
在MATLAB命令窗口口,輸入命命令:pascal(6)
矩陣次次對角線上上的元素1,5,10,10,5,1即為展開開式的系數(shù)數(shù)。2.3MATLAB運算算2.3.1算術(shù)運算算1.基本算算術(shù)運算MATLAB的基本本算術(shù)運算算有:+(加)、--(減)、、*(乘)、/(右右除)、\(左除)、^(乘乘方)。注注意,運運算是在矩矩陣意義下下進(jìn)行的,,單個數(shù)據(jù)據(jù)的算術(shù)運運算只是一一種特例。。(1)矩矩陣加減運運算假假定定有兩個矩矩陣A和B,則可以以由A+B和A-B實現(xiàn)矩陣陣的加減運運算。運算算規(guī)則是::若A和B矩陣的維維數(shù)相同,,則可以執(zhí)執(zhí)行矩陣的的加減運算算,A和B矩陣的相相應(yīng)元素相相加減。如如果A與B的維數(shù)不不相同,則則MATLAB將給給出錯誤信信息,提示示用戶兩個個矩陣的維維數(shù)不匹配配。(2)矩矩陣乘法假假定有有兩個矩陣陣A和B,,若A為m×n矩陣陣,B為n×p矩陣陣,則C=A*B為為m×p矩矩陣。(3)矩矩陣除法在在MATLAB中,有兩兩種矩陣除除法運算::\和/,,分別表示示左除和右右除。如果果A矩陣是是非奇異方方陣,則A\B和B/A運算算可以實現(xiàn)現(xiàn)。A\B等效于A的逆左乘乘B矩陣,,也就是inv(A)*B,,而B/A等效于A矩陣的逆逆右乘B矩矩陣,也就就是B*inv(A)。對對于含有有標(biāo)量的運運算,兩種種除法運算算的結(jié)果相相同,如3/4和4\3有相相同的值,,都等于0.75。。又如,設(shè)設(shè)a=[10.5,25],,則a/5=5\a=[2.10005.0000]。對于矩矩陣來說,,左除和右右除表示兩兩種不同的的除數(shù)矩陣陣和被除數(shù)數(shù)矩陣的關(guān)關(guān)系。對于于矩陣運算算,一般A\B≠B/A。(4)矩矩陣的乘方方一一個矩矩陣的乘方方運算可以以表示成A^x,要要求A為方方陣,x為為標(biāo)量。2.點運算算在MATLAB中,,有一種特特殊的運算算,因為其其運算符是是在有關(guān)算算術(shù)運算符符前面加點點,所以叫叫點運算。。點運算符符有.*、、./、.\和.^。兩矩陣陣進(jìn)行點運運算是指它它們的對應(yīng)應(yīng)元素進(jìn)行行相關(guān)運算算,要求兩兩矩陣的維維參數(shù)相同同。2.3.2關(guān)系系運算MATLAB提提供了6種種關(guān)系運算算符:<(小于)、、<=(小小于或等于于)、>(大于)、、>=(大大于或等于于)、==(等于)、~=(不等于)。它們的的含義不難難理解,但但要注意其其書寫方法法與數(shù)學(xué)中中的不等式式符號不盡盡相同。關(guān)系運算符符的運算法法則為:(1)當(dāng)當(dāng)兩個比比較量是標(biāo)標(biāo)量時,直直接比較兩兩數(shù)的大小小。若關(guān)系系成立,關(guān)關(guān)系表達(dá)式式結(jié)果為1,否則為為0。(2)當(dāng)當(dāng)參與比較較的量是兩兩個維數(shù)相相同的矩陣陣時,比較較是對兩矩矩陣相同位位置的元素素按標(biāo)量關(guān)關(guān)系運算規(guī)規(guī)則逐個進(jìn)進(jìn)行,并給給出元素比比較結(jié)果。。最終的關(guān)關(guān)系運算的的結(jié)果是一一個維數(shù)與與原矩陣相相同的矩陣陣,它的元元素由0或或1組成。。(3)當(dāng)當(dāng)參與與比較的的一個是是標(biāo)量,,而另一一個是矩矩陣時,,則把標(biāo)標(biāo)量與矩矩陣的每每一個元元素按標(biāo)標(biāo)量關(guān)系系運算規(guī)規(guī)則逐個個比較,,并給出出元素比比較結(jié)果果。最終終的關(guān)系系運算的的結(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,3)==0
其中中,rem(A,3)是矩陣陣A的每每個元素素除以3的余數(shù)數(shù)矩陣。。此時,,0被擴擴展為與與A同維維數(shù)的零零矩陣,,P是進(jìn)進(jìn)行等于于(==)比比較的結(jié)結(jié)果矩陣陣。2.3.3邏邏輯運運算MATLAB提供了了3種邏邏輯運算算符:&(與)、|(或)和和~(非非)。邏邏輯輯運算的的運算法法則為::(1)在在邏輯輯運算中中,確認(rèn)認(rèn)非零元元素為真真,用1表示,,零元素素為假,,用0表表示。(2)設(shè)設(shè)參與邏邏輯運算算的是兩兩個標(biāo)量量a和b,那么么,a&ba,b全全為非零零時,運運算結(jié)果果為1,,否則為為0。a|ba,b中只要要有一個個非零,,運算結(jié)結(jié)果為1。~~a當(dāng)當(dāng)a是零時時,運算算結(jié)果為為1;當(dāng)當(dāng)a非零零時,運運算結(jié)果果為0。。(3)若若參與與邏輯運運算的是是兩個同同維矩陣陣,那么么運算將將對矩陣陣相同位位置上的的元素按按標(biāo)量規(guī)規(guī)則逐個個進(jìn)行。。最終運運算結(jié)果果是一個個與原矩矩陣同維維的矩陣陣,其元元素由1或0組組成。(4)若若參與邏邏輯運算算的一個個是標(biāo)量量,一個個是矩陣陣,那么么運算將將在標(biāo)量量與矩陣陣中的每每個元素素之間按按標(biāo)量規(guī)規(guī)則逐個個進(jìn)行。。最終運運算結(jié)果果是一個個與矩陣陣同維的的矩陣,,其元素素由1或或0組成成。(5)邏邏輯非非是單目目運算符符,也服服從矩陣陣運算規(guī)規(guī)則。(6)在在算術(shù)術(shù)、關(guān)系系、邏輯輯運算中中,算術(shù)術(shù)運算優(yōu)優(yōu)先級最最高,邏邏輯運算算優(yōu)先級級最低。。例2-9建建立矩陣陣A,然然后找出出大于4的元素素的位置置。(1)建建立矩矩陣A。。A=[4,-65,-54,0,6;56,0,67,-45,0](2)找找出大大于4的的元素的的位置。。find(A>4)2.4矩矩陣分分析2.4.1對對角陣陣與三角角陣1.對角角陣只有對角角線上有有非0元元素的矩矩陣稱為為對角矩矩陣,對對角線上上的元素素相等的的對角矩矩陣稱為為數(shù)量矩矩陣,對對角線上上的元素素都為1的對角角矩陣稱稱為單位位矩陣。。提取矩陣陣的對角角線元素素
設(shè)A為m××n矩陣陣,diag(A)函函數(shù)用于于提取矩矩陣A主主對角線線元素,,產(chǎn)生一一個具有有min(m,n)個個元素的的列向量量。diag(A)函數(shù)還還有一種種形式diag(A,k),,其功能能是提取取第k條條對角線線的元素素。構(gòu)造對角角矩陣設(shè)設(shè)V為為具有m個元素素的向量量,diag(V)將將產(chǎn)生一一個m××m對角角矩陣,,其主對對角線元元素即為為向量V的元素素。diag(V)函數(shù)也也有另一一種形式式diag(V,k),其功功能是產(chǎn)產(chǎn)生一個個n×n(n=m+k)對角角陣,其其第k條條對角線線的元素素即為向向量V的的元素。。例2-10先先建立立5×5矩陣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的一一種矩陣陣,而下下三角陣陣則是對對角線以以上的元元素全為為0的一一種矩陣陣。上三角矩矩陣求求矩陣A的上三三角陣的的MATLAB函數(shù)是是triu(A)。triu(A)函數(shù)數(shù)也有另另一種形形式triu(A,k),其其功能是是求矩陣陣A的第第k條對對角線以以上的元元素。例例如,提提取矩陣陣A的第第2條對對角線以以上的元元素,形形成新的的矩陣B。下三角矩矩陣在在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)轉(zhuǎn)利用函數(shù)數(shù)rot90(A,k)將矩矩陣A逆逆時針旋旋轉(zhuǎn)90o的k倍,當(dāng)當(dāng)k為1時可省省略。3.矩陣陣的左右右翻轉(zhuǎn)對矩陣實實施左右右翻轉(zhuǎn)是是將原矩矩陣的第第一列和和最后一一列調(diào)換換,第二二列和倒倒數(shù)第二二列調(diào)換換,…,,依次類類推。MATLAB對對矩陣A實施左左右翻轉(zhuǎn)轉(zhuǎn)的函數(shù)數(shù)是fliplr(A)。4.矩陣的上上下翻轉(zhuǎn)MATLAB對矩陣A實實施上下翻轉(zhuǎn)轉(zhuǎn)的函數(shù)是flipud(A)。2.4.3矩矩陣的逆逆與偽逆1.矩陣的逆逆對于一個方陣陣A,如果存存在一個與其其同階的方陣陣B,使得::A·B=B··A=I(I為單位矩矩陣)
則稱稱B為A的逆逆矩陣,當(dāng)然然,A也是B的逆矩陣。。求求一個矩陣的的逆是一件非非常煩瑣的工工作,容易出出錯,但在MATLAB中,求一個個矩陣的逆非非常容易。求求方陣A的逆逆矩陣可調(diào)用用函數(shù)inv(A)。例2-11用用求逆矩矩陣的方法解解線性方程組組。Ax=b
其解解為:x=A-1b2.矩陣的偽偽逆如果矩陣A不不是一個方陣陣,或者A是是一個非滿秩秩的方陣時,,矩陣A沒有有逆矩陣,但但可以找到一一個與A的轉(zhuǎn)轉(zhuǎn)置矩陣A'同型的矩陣陣B,使得::A·B··A=AB·A·B=B
此時稱稱矩陣B為矩矩陣A的偽逆逆,也稱為廣廣義逆矩陣。。在MATLAB中,求求一個矩陣偽偽逆的函數(shù)是是pinv(A)。2.4.4方方陣的行列列式把把一個方方陣看作一個個行列式,并并對其按行列列式的規(guī)則求求值,這個值值就稱為矩陣陣所對應(yīng)的行行列式的值。。在MATLAB中,求求方陣A所對對應(yīng)的行列式式的值的函數(shù)數(shù)是det(A)。2.4.5矩矩陣的秩秩與跡1.矩陣的秩秩矩陣線性無關(guān)關(guān)的行數(shù)與列列數(shù)稱為矩陣陣的秩。在MATLAB中,求矩陣陣秩的函數(shù)是是rank(A)。2.矩陣的跡跡矩陣的跡等于于矩陣的對角角線元素之和和,也等于矩矩陣的特征值值之和。在MATLAB中,求矩陣陣的跡的函數(shù)數(shù)是trace(A)。。2.4.6向向量和矩矩陣的范數(shù)矩矩陣或向量量的范數(shù)用來來度量矩陣或或向量在某種種意義下的長長度。范數(shù)有有多種方法定定義,其定義義不同,范數(shù)數(shù)值也就不同同。1.向量的3種常用范數(shù)數(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ù),其其函數(shù)調(diào)用格格式與求向量量的范數(shù)的函函數(shù)完全相同同。2.4.7矩矩陣的條條件數(shù)
在MATLAB中,計算矩矩陣A的3種種條件數(shù)的函函數(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的的特征值和特特征向量,而而格式3直接接求矩陣A的的特征值和特特征向量。例2-12用用求特征征值的方法解解方程。3x5-7x4+5x2+2x-18=0
p=[3,-7,0,5,2,-18];
A=compan(p);%A的伴伴隨矩陣x1=eig(A)%求A的特征值x2=roots(p)%直直接求多項式式p的零點2.5矩陣陣的超越函數(shù)數(shù)1.矩陣平方方根sqrtmsqrtm(A)計算算矩陣A的平平方根。2.矩陣對數(shù)數(shù)logmlogm(A)計算矩陣陣A的自然對對數(shù)。此函數(shù)數(shù)輸入?yún)?shù)的的條件與輸出出結(jié)果間的關(guān)關(guān)系和函數(shù)sqrtm(A)完全一一樣。3.矩陣指數(shù)數(shù)expm、expm1、、expm2、expm3
expm(A)、、expm1(A)、expm2(A)、expm3(A)的功能都都求矩陣指數(shù)數(shù)eA。4.普通矩陣陣函數(shù)funmfunm(A,‘fun’)用來計計算直接作用用于矩陣A的的由‘fun’指定的超超越函數(shù)值。。當(dāng)fun取取sqrt時時,funm(A,‘sqrt’)可以計算矩矩陣A的平方方根,與sqrtm(A)的計算結(jié)結(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建建立一個個字符串向量量,然后對該該向量做如下下處理:(1)取第第1~5個字字符組成的子子字符串。(2)將將字符串倒過過來重新排列列。
(3)將字符串串中的小寫字字母變成相應(yīng)應(yīng)的大寫字母母,其余字符符不變。(4)統(tǒng)計計字符串中小小寫字母的個個數(shù)。命令如下:ch=‘ABc123d4e56Fg9’;
subch=ch(1:5)%取子字符符串
revch=ch(end:-1:1)%將字字符串倒排k=find(ch>=‘a(chǎn)’&ch<=‘‘z’);%找小寫字母母的位置ch(k)=ch(k)-(‘a(chǎn)’’-‘A’);%將小寫字字母變成相應(yīng)應(yīng)的大寫字母母
char(ch)length(k)%統(tǒng)統(tǒng)計小寫字母母的個數(shù)與字符串有有關(guān)的另一一個重要函函數(shù)是eval,其其調(diào)用格式式為:eval(t)其其中t為字字符串。它它的作用是是把字符串串的內(nèi)容作作為對應(yīng)的的MATLAB語句句來執(zhí)行。。2.7結(jié)結(jié)構(gòu)數(shù)據(jù)據(jù)和單元數(shù)數(shù)據(jù)
2.7.1結(jié)結(jié)構(gòu)數(shù)數(shù)據(jù)1.結(jié)構(gòu)矩矩陣的建立立與引用結(jié)構(gòu)矩陣的的元素可以以是不同的的數(shù)據(jù)類型型,它能將將一組具有有不同屬性性的數(shù)據(jù)納納入到一個個統(tǒng)一的變變量名下進(jìn)進(jìn)行管理。。建立一個個結(jié)構(gòu)矩陣陣可采用給給結(jié)構(gòu)成員員賦值的辦辦法。具體體格式為::結(jié)結(jié)構(gòu)矩矩陣名.成成員名=表表達(dá)式其其中表達(dá)式式應(yīng)理解為為矩陣表達(dá)達(dá)式。2.結(jié)構(gòu)成成員的修改改可以根據(jù)需需要增加或或刪除結(jié)構(gòu)構(gòu)的成員。。例如要給給結(jié)構(gòu)矩陣陣a增加一一個成員x4,可給給a中任意意一個元素素增加成員員x4:a(1).x4=‘410075’;但但其他成成員均為空空矩陣,可可以使用賦賦值語句給給它賦確定定的值。要要刪除除結(jié)構(gòu)的成成員,則可可以使用rmfield函數(shù)數(shù)來完成。。例如,刪刪除成員x4:a=rmfield(a,‘x4’);3.關(guān)于結(jié)結(jié)構(gòu)的函數(shù)數(shù)除了一般的的結(jié)構(gòu)數(shù)據(jù)據(jù)的操作外外,MATLAB還還提供了部部分函數(shù)來來進(jìn)行結(jié)構(gòu)構(gòu)矩陣的操操作。2.7.2單元元數(shù)據(jù)1.單元矩矩陣的建立立與引用建立單元矩矩陣和一般般矩陣相似似,只是矩矩陣元素用用大括號括括起來??煽梢杂脦в杏写罄ㄌ栂孪聵?biāo)的形式式引用單元元矩陣元素素。例如b{3,3}。單元元矩陣的元元素可以是是結(jié)構(gòu)或單單元數(shù)據(jù)。??煽梢允故褂胏elldisp函數(shù)來來顯示整個個單元矩陣陣,如celldisp(b)。還可可以刪除單單元矩陣中中的某個元元素。2.關(guān)于單單元的函數(shù)數(shù)MATLAB還提供供了部分函函數(shù)用于單單元的操作作。2.8稀稀疏矩陣2.8.1矩矩陣存儲方方式MATLAB的的矩陣有兩兩種存儲方方式:完全全存儲方式式和稀疏存存儲方式。。1.完全存存儲方式完全存儲方方式是將矩矩陣的全部部元素按列列存儲。以以前講到的的矩陣的存存儲方式都都是按這個個方式存儲儲的,此存存儲方式對對稀疏矩陣陣也適用。。2.稀疏存存儲方式稀疏存儲方方式僅存儲儲矩陣所有有的非零元元素的值及及其位置,,即行號和和列號。在在MATLAB中,,稀疏存儲儲方式也是是按列存儲儲的。注注意,在講講稀疏矩陣陣時,有兩兩個不同的的概念,一一是指矩陣陣的0元素素較多,該該矩陣是一一個具有稀稀疏特征的的矩陣,二二是指采用用稀疏方式式存儲的矩矩陣。2.8.2稀疏
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025辦公室租賃合同范本版
- 四年級上冊數(shù)學(xué)教案-觀察物體練習(xí)課-蘇教版
- 四年級下冊數(shù)學(xué)教案-4.2 三角形內(nèi)角和-青島版
- 2024年西南醫(yī)科大學(xué)招聘工作人員真題
- 2024年攀枝花市市屬事業(yè)單位考試真題
- 2024年牡丹江市市屬事業(yè)單位考試真題
- 2024年開封市六四六實驗高級中學(xué)教師招聘真題
- 購買電子耗材合同范本
- 2024年安徽省蒙城建筑工業(yè)中等專業(yè)學(xué)校專任教師招聘真題
- 2024年北京回龍觀醫(yī)院招聘真題
- (完整版)A4作文格紙可直接打印使用
- 安徽-建標(biāo)〔2017〕191號附件-2018工程量清單計價辦法
- 注意缺陷多動障礙診療規(guī)范2023版
- 動力管道設(shè)計手冊-第2版
- 中等職業(yè)學(xué)校人才培養(yǎng)工作水平評估報告
- 研究生-5社會主體研究方法
- 貝克的認(rèn)知療法
- 四大伊瑪目生平概況
- 生命體征測量操作流程及評分標(biāo)準(zhǔn)
- DB42T2012-2023土家族吊腳樓營造規(guī)程
- 醫(yī)療器械GMP醫(yī)療器械生產(chǎn)質(zhì)量管理規(guī)范
評論
0/150
提交評論