




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章MATLAB矩陣及其運算
2.1變量和數據操作
2.2MATLAB矩陣
2.3MATLAB運算
2.4矩陣分析
2.5矩陣的超越函數
2.6字符串
2.7結構數據和單元數據
2.8稀疏矩陣2.1變量和數據操作2.1.1變量與賦值1.變量命名
1)在MATLAB7.0中,變量名是以字母開頭,后接字母、數字或下劃線的字符序列,最多63個字符。
2)在MATLAB中,變量名區分字母的大小寫。
3)注意:MATLAB提供的標準函數名及命令名必須用小寫字母!2.賦值語句
(1)
變量=表達式
(2)
表達式
其中表達式是用運算符將有關運算量連接起來的式子,其結果是一個矩陣。例2-1計算表達式的值,并顯示計算結果。在MATLAB命令窗口輸入命令:
x=1+2i;
y=3-sqrt(17);
z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))
其中pi和i都是MATLAB預先定義的變量。
pi代表圓周率πi代表虛數單位
輸出結果是:
z=
-0.3488+0.3286i2.1.2預定義變量在MATLAB工作空間中,還駐留幾個由系統本身定義的變量。例如,用pi表示圓周率π的近似值,用i,j表示虛數單位。
預定義變量有特定的含義,在使用時,應盡量避免對這些變量重新賦值。2.1.3內存變量的管理1.內存變量的刪除與修改
MATLAB工作空間窗口專門用于內存變量的管理。在工作空間窗口中可以顯示所有內存變量的屬性。當選中某些變量后,再單擊Delete按鈕,就能刪除這些變量。當選中某些變量后,再單擊Open按鈕,將進入變量編輯器。通過變量編輯器可以直接觀察變量中的具體元素,也可修改變量中的具體元素。
clear命令用于刪除MATLAB工作空間中的變量。
who和whos用于顯示在MATLAB工作空間中已經駐留的變量名清單。
who:只顯示出駐留變量的名稱
whos:在給出變量名的同時,還給出它們的大小、所占字節數及數據類型等信息。2.內存變量文件
利用MAT文件可以把當前MATLAB工作空間中的一些有用變量長久地保留下來,擴展名是.mat。
MAT文件的生成和裝入由save和load命令來完成。常用格式為:
save
文件名[變量名表][-append][-ascii]
load文件名[變量名表][-ascii]其中,文件名可以帶路徑,但不需帶擴展名.mat。
變量名表中的變量個數不限,只要內存或文件中存在即可,變量名之間以空格分隔。當變量名表省略時,保存或裝入全部變量。-ascii選項使文件以ASCII格式處理,省略該選項時文件將以二進制格式處理。save命令中的-append選項控制將變量追加到MAT文件中。2.1.4MATLAB常用數學函數
MATLAB提供了許多數學函數,函數的自變量規定為矩陣變量,運算法則是將函數逐項作用于矩陣的元素上,因而運算的結果是一個與自變量同維數的矩陣。
函數使用說明:
(1)三角函數以弧度為單位計算。
(2)abs函數可以求實數的絕對值、復數的模、字符串的ASCII碼值。
(3)用于取整的函數有fix、floor、ceil、round,要注意它們的區別。
(4)rem與mod函數的區別。rem(x,y)和mod(x,y)要求x,y必須為相同大小的實矩陣或為標量。2.1.5數據的輸出格式
MATLAB用十進制數表示一個常數,具體可采用日常記數法和科學記數法兩種表示方法。
在一般情況下,MATLAB內部每一個數據元素都是用雙精度數來表示和存儲的。數據輸出時用戶可以用format命令設置或改變數據輸出格式。
format命令的格式為:
format
格式符
其中格式符決定數據的輸出格式2.2MATLAB矩陣2.2.1矩陣的建立1.直接輸入法
最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。2.利用M文件建立矩陣
對于比較大且比較復雜的矩陣,可以為它專門建立一個M文件。下面通過一個簡單例子來說明如何利用M文件創建矩陣。
例2-2利用M文件建立MYMAT矩陣。
(1)
啟動有關編輯程序或MATLAB文本編輯器,并輸入待建矩陣;
(2)
把輸入的內容以純文本方式存盤(設文件名為mymatrix.m);
(3)
在MATLAB命令窗口中輸入mymatrix,即運行該M文件,可供以后使用。3.利用冒號表達式建立一個向量
冒號表達式可以產生一個行向量,一般格式是:
e1:e2:e3
其中e1為初始值,e2為步長,e3為終止值。
在MATLAB中,還可以用linspace函數產生行向量。其調用格式為:
linspace(a,b,n)
其中a和b是生成向量的第一個和最后一個元素,n是元素總數。
顯然,linspace(a,b,n)與a:(b-a)/(n-1):b等價。4.建立大矩陣
大矩陣可由方括號中的小矩陣或向量建立起來。2.2.2矩陣的拆分1.矩陣元素的引用方式
1)通過下標引用矩陣的元素,例如
A(3,2)=200
2)采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應元素在內存中的排列順序。在MATLAB中,矩陣元素按列存儲,先第一列,再第二列,依次類推。例如
A=[1,2,3;4,5,6];
A(3)
ans=
2
顯然,序號(Index)與下標(Subscript)是一一對應的,以m×n矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。其相互轉換關系也可利用sub2ind和ind2sub函數求得。
有關求矩陣大小的函數:
1)size(A):返回兩個元素的向量,分別是矩陣A的行數和列數;
2)length(A):給出行數和列數中的較大者,即length(A)=max(size(A));3)ndims(A):給出A的維數。2.利用冒號表達式獲得子矩陣①
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行內,并在第k~k+m列中的所有元素。
此外,還可利用一般向量和end運算符來表示矩陣下標,從而獲得子矩陣。end表示某一維的末尾元素下標。
3利用空矩陣刪除矩陣的元素
在MATLAB中,定義[]為空矩陣。給變量X賦空矩陣的語句為X=[]。注意,X=[]與clearX不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數為0。
4改變矩陣的形狀
在MATLAB中,reshape(A,m,n)函數在矩陣總元素保持不變的前提下,將矩陣A重新排列在m×n的二維矩陣。2.2.3特殊矩陣
1.通用的特殊矩陣
常用的產生通用特殊矩陣的函數有:
zeros:產生全0矩陣(零矩陣)。
ones:產生全1矩陣(幺矩陣)。
eye:產生單位矩陣。
rand:產生0~1間均勻分布的隨機矩陣。
randn:產生均值為0,方差為1的標準正態分布隨機矩陣。例2-3分別建立3×3、3×2和與矩陣A同樣大小的零矩陣。
(1)建立一個3×3零矩陣。
zeros(3)
(2)建立一個3×2零矩陣。
zeros(3,2)
(3)設A為2×3矩陣,則可以用zeros(size(A))建立一個與矩陣A同樣大小零矩陣。
A=[123;456];%產生一個2×3階矩陣A
zeros(size(A))%產生一個與矩陣A同樣大小的零矩陣例2-4建立隨機矩陣。(1)在區間[20,50]內均勻分布的5階隨機矩陣。(2)均值為0.6、方差為0.1的5階正態分布隨機矩陣。
命令如下:
x=20+(50-20)*rand(5)
y=0.6+sqrt(0.1)*randn(5)
2.用于專門學科的特殊矩陣
(1)魔方矩陣
魔方矩陣有一個有趣的性質,其每行、每列及兩條對角線上的元素和都相等。對于n階魔方陣,其元素由1,2,3,…,n2共n2個整數組成。MATLAB提供了求魔方矩陣的函數magic(n),其功能是生成一個n階魔方陣。例2-5將101~125等25個數填入一個5行5列的表格中,使其每行每列及對角線的和均為565。
M=100+magic(5)
(2)范得蒙矩陣
范得蒙(Vandermonde)矩陣最后一列全為1,倒數第二列為一個指定的向量,其他各列是其后列與倒數第二列的點乘積。可以用一個指定向量生成一個范得蒙矩陣。在MATLAB中,函數vander(V)生成以向量V為基礎向量的范得蒙矩陣。例如:
A=vander([1;2;3;5])
即可得到上述范得蒙矩陣。
(3)希爾伯特矩陣
在MATLAB中,生成希爾伯特矩陣的函數是hilb(n)。
MATLAB中,有一個專門求希爾伯特矩陣的逆的函數invhilb(n),其功能是求n階的希爾伯特矩陣的逆矩陣。例2-6求4階希爾伯特矩陣及其逆矩陣。
命令如下:
formatrat%以有理形式輸出H=hilb(4)H=invhilb(4)formatshort
(4)托普利茲矩陣
托普利茲(Toeplitz)矩陣除第一行和第一列外,其他每個元素都與左上角的元素相同。生成托普利茲矩陣的函數是
toeplitz(x,y)
它生成一個以x為第一列,y為第一行的托普利茲矩陣。這里x,y均為向量,兩者不必等長。toeplitz(x)用向量x生成一個對稱的托普利茲矩陣。例如:
T=toeplitz(1:6)
(5)伴隨矩陣
MATLAB生成伴隨矩陣的函數是compan(p),其中p是一個多項式的系數向量,高次冪系數排在前,低次冪排在后。
例如,為了求多項式的x3-7x+6的伴隨矩陣,可使用命令:
p=[1,0,-7,6];compan(p)
(6)帕斯卡矩陣
我們知道,二次項(x+y)n展開后的系數隨n的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡(Pascal)矩陣。函數pascal(n)生成一個n階帕斯卡矩陣。例2-7求(x+y)5的展開式。
在MATLAB命令窗口,輸入命令:
pascal(6)
矩陣次對角線上的元素1,5,10,10,5,1即為展開式的系數。
2.3MATLAB運算
2.3.1算術運算
1.基本算術運算
MATLAB的基本算術運算有:+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)。
注意,運算是在矩陣意義下進行的,單個數據的算術運算只是一種特例。
(1)矩陣加減運算
假定有兩個矩陣A和B,則可以由A+B和A-B實現矩陣的加減運算。運算規則是:
若A和B矩陣的維數相同,則可以執行矩陣的加減運算,A和B矩陣的相應元素相加減;
如果A與B的維數不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數不匹配。>>A=[123;456];>>B=[654;321];>>A+Bans=777777A=[123;456],B=[12;34],A+B=?一個標量也可以和其他不同維數的矩陣進行加減運算.>>x=[2-10;32-4];>>y=x-1y=1-2-121-5
(2)矩陣乘法
假定有兩個矩陣A和B,若A為m×n矩陣,B為n×p矩陣,則C=A*B為m×p矩陣。也就是常說的矩陣相乘應滿足:
A列B行相等>>A=[123;456];>>B=[12;30;74];>>C=A*BC=28146132>>D=B*AD=91215369233445>>A=[102030;405060];>>B=[13;47];>>C=A*B???Errorusing==>mtimesInnermatrixdimensionsmustagree.>>D=B*AD=130170210320430540在MATLAB中,還可以進行矩陣和標量相乘,標量可以是乘數也可以是被乘數。矩陣與標量相乘是矩陣中的每個元素與此標量相乘。
(3)矩陣除法
在MATLAB中,有兩種矩陣除法運算:
\和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現。A\B等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。
對于含有標量的運算,兩種除法運算的結果相同,如3/4和4\3有相同的值,都等于0.75。又如,設a=[10.5,25],則a/5=5\a=[2.10005.0000]。
對于矩陣來說,左除和右除表示兩種不同的除數矩陣和被除數矩陣的關系。對于矩陣運算,一般A\B≠B/A。>>a=[123;426;749];>>b=[432;751;12792];>>c1=a\bc1=0.5000-0.500044.50001.00000.000046.00000.50001.1667-44.8333>>c2=b/ac2=-0.1667-3.33332.5000-0.8333-7.66675.500012.833363.6667-36.5000
(4)矩陣的乘方
一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。
>>A=[123;456;780];>>A^2ans=303615668142395469>>A^0.1ans=0.9750+0.2452i0.1254-0.0493i0.0059-0.0604i0.2227-0.0965i1.1276+0.1539i0.0678-0.1249i0.0324-0.1423i0.0811-0.1659i1.1786+0.2500i2.點運算
在MATLAB中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算。點運算符有.*、./、.\和.^。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數相同。>>A=[123;456;789];>>B=[-101;1-10;011];>>C=A.*BC=-1034-50089>>D=A*BD=11411101116>>x=[123;456];>>y=[-213;-114];>>z1=x./yz1=-0.50002.00001.0000-4.00005.00001.5000>>z2=y.\xz2=-0.50002.00001.0000-4.00005.00001.5000>>x=[123];>>y=[456];>>z=x.^yz=132729>>x=[123];>>z=x.^2z=149>>x=[123];y=[456];>>z=2.^[xy]z=2481632642.3.2關系運算
MATLAB提供了6種關系運算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。它們的含義不難理解,但要注意其書寫方法與數學中的不等式符號不盡相同。關系運算符的運算法則為:
(1)當兩個比較量是標量時,直接比較兩數的大小。若關系成立,關系表達式結果為1,否則為0。
(2)當參與比較的量是兩個維數相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關系運算規則逐個進行,并給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。
(3)當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規則逐個比較,并給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。
例2-8產生5階隨機方陣A,其元素為[10,90]區間的隨機整數,然后判斷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的余數矩陣。此時,0被擴展為與A同維數的零矩陣,P是進行等于(==)比較的結果矩陣。2.3.3邏輯運算
MATLAB提供了3種邏輯運算符:
&(與)、|(或)和~(非)。邏輯運算的運算法則為:(1)在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。(2)設參與邏輯運算的是兩個標量a和b,那么,
a&ba,b全為非零時,運算結果為1,否則為0。
a|ba,b中只要有一個非零,運算結果為1。
~a當a是零時,運算結果為1;當a非零時,運算結果為0。(3)若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規則逐個進行。最終運算結果是一個與原矩陣同維的矩陣,其元素由1或0組成。(4)若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規則逐個進行。最終運算結果是一個與矩陣同維的矩陣,其元素由1或0組成。(5)邏輯非是單目運算符,也服從矩陣運算規則。(6)在算術、關系、邏輯運算中,算術運算優先級最高,邏輯運算優先級最低。>>A=[465-5406;56067-450]A=465-540656067-450>>B=[0532-6;5300-56]B=0532-65300-56A&B=?A|B=?~A=?例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元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數量矩陣,對角線上的元素都為1的對角矩陣稱為單位矩陣。(1)提取矩陣的對角線元素
設A為m×n矩陣,diag(A)函數用于提取矩陣A主對角線元素,產生一個具有min(m,n)個元素的列向量。
diag(A)函數還有一種形式diag(A,k),其功能是提取第k條對角線的元素。>>A=[123;456]A=123456>>D=diag(A)D=15>>A=[123;456]A=123456>>D1=diag(A,1)D1=26>>D2=diag(A,-1)D2=4(2)構造對角矩陣
設V為具有m個元素的向量,diag(V)將產生一個m×m對角矩陣,其主對角線元素即為向量V的元素。
diag(V)函數也有另一種形式diag(V,k),其功能是產生一個n×n(n=m+|K|)對角陣,其第k條對角線的元素即為向量V的元素。>>diag([12-14])ans=1000020000-100004>>diag(1:3,-1)ans=0000100002000030例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的每行乘以一個指定常數
2.三角陣
三角陣又進一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角陣則是對角線以上的元素全為0的一種矩陣。(1)上三角矩陣
求矩陣A的上三角陣的MATLAB函數是triu(A)。
triu(A)函數也有另一種形式triu(A,k),其功能是求矩陣A的第k條對角線以上的元素。例如,提取矩陣A的第2條對角線以上的元素,形成新的矩陣B。(2)下三角矩陣
在MATLAB中,提取矩陣A的下三角矩陣的函數是tril(A)和tril(A,k),其用法與提取上三角矩陣的函數triu(A)和triu(A,k)完全相同。>>A=[713-28;2-98;0345]A=713-282-980345>>B=triu(A)B=713-280-98005>>C=triu(A,1)C=013-280080002.4.2矩陣的轉置與旋轉
1.矩陣的轉置
轉置運算符是單撇號(‘)。
2.矩陣的旋轉
利用函數rot90(A,k)將矩陣A旋轉90o的k倍,當k為1時可省略。3.矩陣的左右翻轉
對矩陣實施左右翻轉是將原矩陣的第一列和最后一列調換,第二列和倒數第二列調換,…,依次類推。MATLAB對矩陣A實施左右翻轉的函數是fliplr(A)。4.矩陣的上下翻轉
MATLAB對矩陣A實施上下翻轉的函數是flipud(A)。>>A=[713-8;2-98;045]A=713-82-98045>>A'ans=71203-94-885>>transpose(A)ans=71203-94-885>>A=[571938;-2318;0845]A=571938-23180845>>rot90(A)ans=388519318457-20>>A=[571938;-2318;0845]A=571938-23180845>>rot90(A,3)ans=0-2578431195838>>A=[14-98;-2818;-240]A=14-98-2818-240>>B=fliplr(A)B=8-914881-204-22.4.3矩陣的逆與偽逆1.矩陣的逆
對于一個方陣A,如果存在一個與其同階的方陣B,使得:
A·B=B·A=I(I為單位矩陣)
則稱B為A的逆矩陣,當然,A也是B的逆矩陣。
求一個矩陣的逆是一件非常煩瑣的工作,容易出錯,但在MATLAB中,求一個矩陣的逆非常容易。求方陣A的逆矩陣可調用函數inv(A)。例2-11用求逆矩陣的方法解線性方程組。
Ax=b
其解為:
x=A-1b>>A=[123;149;1827];>>b=[5-26]';>>x=inv(A)*bx=23.0000-14.50003.66672.矩陣的偽逆
如果矩陣A不是一個方陣,或者A是一個非滿秩的方陣時,矩陣A沒有逆矩陣,但可以找到一個與A的轉置矩陣A'同型的矩陣B,使得:
A·B·A=A
B·A·B=B
此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆矩陣。在MATLAB中,求一個矩陣偽逆的函數是pinv(A)。2.4.4方陣的行列式
把一個方陣看作一個行列式,并對其按行列式的規則求值,這個值就稱為矩陣所對應的行列式的值。在MATLAB中,求方陣A所對應的行列式的值的函數是det(A)。>>A=rand(5)A=0.81470.09750.15760.14190.65570.90580.27850.97060.42180.03570.12700.54690.95720.91570.84910.91340.95750.48540.79220.93400.63240.96490.80030.95950.6787>>B=det(A)B=-0.02502.4.5矩陣的秩與跡1.矩陣的秩
矩陣線性無關的行數與列數稱為矩陣的秩。在MATLAB中,求矩陣秩的函數:
rank(A)2.矩陣的跡
矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征值之和。在MATLAB中,求矩陣的跡的函數:
trace(A)>>A=[22-11;43-12;85-34;33-22]A=22-1143-1285-3433-22>>r=rank(A)r=4>>A=[223;45-6;789]A=22345-6789>>trace(A)ans=162.4.6向量和矩陣的范數
矩陣或向量的范數用來度量矩陣或向量在某種意義下的長度或大小。范數有多種方法定義,其定義不同,范數值也就不同。1.向量的3種常用范數及其計算函數
在MATLAB中,求向量范數的函數為:(1)norm(V)或norm(V,2)
計算向量V的2—范數(2)norm(V,1)
計算向量V的1—范數(3)norm(V,inf)
計算向量V的∞—范數2.矩陣的范數及其計算函數
MATLAB提供了求3種矩陣范數的函數,其函數調用格式與求向量的范數的函數完全相同。>>V=[-11/21]V=-1.00000.50001.0000>>v1=norm(V,1)v1=2.5000>>v2=norm(V)v2=1.5000>>vinf=norm(V,inf)vinf=12.4.7矩陣的條件數
在MATLAB中,計算矩陣A的3種條件數的函數是:
(1)cond(A,1)
計算A的1—范數下的條件數
(2)cond(A)或cond(A,2)
計算A的2—范數數下的條件數
(3)cond(A,inf)
計算A的∞—范數下的條件數>>A=[223;45-6;789]A=22345-6789>>C1=cond(A)C1=87.9754>>B=[2-54;15-2;-124]B=2-5415-2-124>>C2=cond(B)C2=3.75152.4.8矩陣的特征值與特征向量
在MATLAB中,計算矩陣A的特征值和特征向量的函數是eig(A),常用的調用格式有3種:
(1)E=eig(A)
求矩陣A的全部特征值,構成向量E。
(2)[V,D]=eig(A)
求矩陣A的全部特征值,構成對角陣D,并求A的特征向量構成V的列向量。(3)[V,D]=eig(A,‘nobalance’)
與第2種格式類似,但第2種格式中先對A作相似變換后求矩陣A的特征值和特征向量,而格式3直接求矩陣A的特征值和特征向量。>>A=[11.5;11.25;.5.252];>>[V,D]=eig(A)V=0.72120.44430.5315-0.68630.56210.4615-0.0937-0.69760.7103D=-0.01660001.48010002.5365例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矩陣的超越函數
1.矩陣平方根sqrtm
sqrtm(A)計算矩陣A的平方根。
2.矩陣對數logm
logm(A)計算矩陣A的自然對數。此函數輸入參數的條件與輸出結果間的關系和函數sqrtm(A)完全一樣3.矩陣指數expm、expm1、expm2、expm3
expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都是求矩陣指數eA。
4.普通矩陣函數funm
funm(A,‘fun’)用來計算直接作用于矩陣A的由‘fun’指定的超越函數值。當fun取sqrt時,funm(A,‘sqrt’)可以計算矩陣A的平方根,與sqrtm(A)的計算結果一樣。
2.6字符串
在MATLAB中,字符串是用單撇號('
')括起來的字符序列。
MATLAB將字符串當作一個行向量,每個元素對應一個字符,其標識方法和數值向量相同。也可以建立多行字符串矩陣。>>xm='CentralSouthUniversity'xm=CentralSouthUniversity>>ch=['abcdef';'123456']ch=abcdef123456字符串是以ASCII碼形式存儲的。abs和double函數都可以用來獲取字符串矩陣所對應的ASCII碼數值矩陣。相反,char函數可以把ASCII碼矩陣轉換為字符串矩陣。例2-13
建立一個字符串向量,然后對該向量做如下處理:
(1)取第1~5個字符組成的子字符串。
(2)將字符串倒過來重新排列。
(3)將字符串中的小寫字母變成相應的大寫字母,其余字符不變。
(4)統計字符串中小寫字母的個數。命令如下:
ch='ABc123d4e56Fg9';
subch=ch(1:5)
%取子字符串
revch=ch(end:-1:1)
%將字符串倒排
k=find(ch>='a'&ch<='z');
%找小寫字母的位置
ch(k)=ch(k)-('a'-'A');
%將小寫字母變成相應的大寫字母
char(ch)
length(k)
%統計小寫字母的個數
與字符串有關的另一個重要函數是eval,其調用格式為:
eval(t)
其中t為字符串。它的作用是把字符串的內容作為對應的MATLAB語句來執行。
表2-5列出了常用的字符串處理函數。
>>t=pi;>>m='[t,sin(t),cos(t)]';>>y=eval(m)y=3.14160.0000-1.00001.若字符串中的字符含有單撇號,則該單撇號字符要用兩個單撇號來表示。>>disp('I''mateacher.')I'mateacher.2.對于較長的字符串可以用字符串向量來表示,即用[]括起來。>>f=70;>>c=(f-32)/1.8;>>disp(['Roomtemperatureis',num2str(c),'degreesc.'])Roomtemperatureis21.1111degreesc.2.7結構數據和單元數據2.7.1結構數據1.結構矩陣的建立與引用
結構矩陣的元素可以是不同的數據類型,它能將一組具有不同屬性的數據納入到一個統一的變量名下進行管理。建立一個結構矩陣可采用給結構成員賦值的辦法。具體格式為:
結構矩陣名.成員名=表達式
其中表達式應理解為矩陣表達式。2.結構成員的修改
可以根據需要增加或刪除結構的成員。例如要給結構矩陣a增加一個成員x4,可給a中任意一個元素增加成員x4:
a(1).x4=‘410075’;
但其他成員均為空矩陣,可以使用賦
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山西省運城運康中學九上數學期末考試模擬試題含解析
- 河北省石家莊市行唐縣2024-2025學年八年級物理第一學期期末監測試題含解析
- 滴定分析法概述代明花68課件
- 2025版汽車維修場地租賃與維修配件供應合同
- 二零二五版文化節場地租賃專項協議
- 二零二五年度餐飲管理軟件銷售與顧客滿意度提升合同
- 二零二五年家居裝飾壁布定制及環保材料認證合同
- 二零二五年展覽場地租賃合同范本下載
- 二零二五DHL快遞業務合作協議范本與費用結算規范
- 二零二五年度女方按揭房產歸屬性質確認離婚協議
- 2025安徽蚌埠市城市投資控股集團有限公司所屬公司社會招聘11人筆試參考題庫附帶答案詳解
- 嚴重過敏反應診斷和臨床管理專家共識(2025)解讀課件
- 人行雨棚施工方案
- 刑事和解協議書自訴
- 三方委托收款協議范本8篇
- 奶茶服務協議合同
- 書籍保密協議書范文
- 基層護理進修后回院匯報
- 護理查對制度安全警示教育
- 2024年四川成都農業科技中心招聘筆試真題
- 2025年濱州生物會考試題及答案
評論
0/150
提交評論