版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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ū)分字母的大小寫。變量名和文檔名都不要以數(shù)字開頭!2.賦值語句
(1)變量=表達式(指定結(jié)果變量)
(2)表達式(不指定結(jié)果變量)
其中表達式是用運算符將有關(guān)運算量連接起來的式子,其結(jié)果是一個矩陣。如果不指定結(jié)果變量,則將計算結(jié)果賦值給ans變量,當(dāng)有新的結(jié)果需要存入ans時,將覆蓋掉已經(jīng)保存的結(jié)果。例2-1計算表達式的值,并顯示計算結(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
2.1.2預(yù)定義變量在MATLAB工作空間中,還駐留幾個由系統(tǒng)本身定義的變量。例如,用pi表示圓周率π的近似值,用i,j表示虛數(shù)單位,用inf表示無窮大。
預(yù)定義變量有特定的含義,在使用時,應(yīng)盡量避免對這些變量重新賦值。2.1.3內(nèi)存變量的管理
1.內(nèi)存變量的刪除與修改
MATLAB工作空間窗口專門用于內(nèi)存變量的管理。在工作空間窗口中可以顯示所有內(nèi)存變量的屬性。當(dāng)選中某些變量后,再單擊Delete按鈕,就能刪除這些變量。當(dāng)選中某些變量后,再單擊Open按鈕,將進入變量編輯器。通過變量編輯器可以直接觀察變量中的具體元素,也可修改變量中的具體元素。
clear命令用于刪除MATLAB工作空間中的變量。who和whos這兩個命令用于顯示在MATLAB工作空間中已經(jīng)駐留的變量名清單。who命令只顯示出駐留變量的名稱,whos在給出變量名的同時,還給出它們的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型等信息。2.內(nèi)存變量文件
利用MAT文件可以把當(dāng)前MATLAB工作空間中的一些有用變量長久地保留下來,擴展名是.mat。MAT文件的生成和裝入由save和load命令來完成。常用格式為:
save文件名[變量名表][-append][-ascii]
load文件名[變量名表][-ascii]其中,文件名可以帶路徑,但不需帶擴展名.mat,命令隱含一定對.mat文件進行操作。變量名表中的變量個數(shù)不限,只要內(nèi)存或文件中存在即可,變量名之間以空格分隔。當(dāng)變量名表省略時,保存或裝入全部變量。-ascii選項使文件以ASCII格式處理,省略該選項時文件將以二進制格式處理。save命令中的-append選項控制將變量追加到MAT文件中。2.1.4MATLAB常用數(shù)學(xué)函數(shù)
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.1.5數(shù)據(jù)的輸出格式
MATLAB用十進制數(shù)表示一個常數(shù),具體可采用日常記數(shù)法和科學(xué)記數(shù)法兩種表示方法。
在一般情況下,MATLAB內(nèi)部每一個數(shù)據(jù)元素都是用雙精度數(shù)來表示和存儲的。數(shù)據(jù)輸出時用戶可以用format命令設(shè)置或改變數(shù)據(jù)輸出格式。format命令的格式為:
format格式符
其中格式符決定數(shù)據(jù)的輸出格式格式符屬性值有:long,short,shorte,longe,shortg,longg,rat,compact,loose,bank等2.2MATLAB矩陣2.2.1矩陣的建立
1.直接輸入法
最簡單的建立矩陣方法是從鍵盤直接輸入矩陣的元素。具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。逗號與分號用法的區(qū)別:1)輸入矩陣時,逗號或空格用于分割同行元素;分號用于換行,用于分割不同行元素;2)用于命令結(jié)尾時,使用逗號或不使用任何符號時,運行命令且顯示結(jié)果;使用分號時,只運行命令但不顯示結(jié)果。小括號與中括號的區(qū)別:1)小括號用于函數(shù)的輸入,中括號用于矩陣的輸入及函數(shù)的輸出;2)數(shù)學(xué)運算優(yōu)先級的限定都使用小括號。利用矩陣編輯器建立矩陣
對于較大矩陣,在commandwindow中輸入變量名=[],在工作間workspace中找到該變量名并雙擊即可打開矩陣編輯器,在其中輸入或改變元素。(易檢驗對齊與否)3.利用M文件建立矩陣
對于比較大且比較復(fù)雜的矩陣,可以為它專門建立一個M文件。下面通過一個簡單例子來說明如何利用M文件創(chuàng)建矩陣。例2-2利用M文件建立MYMAT矩陣。
(1)啟動有關(guān)編輯程序或MATLAB文本編輯器,并輸入待建矩陣:
(2)把輸入的內(nèi)容以純文本方式存盤(設(shè)文件名為mymatrix.m)。
(3)在MATLAB命令窗口中輸入mymatrix,即運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用。
4.利用冒號表達式建立一個向量
冒號表達式可以產(chǎn)生一個行向量,一般格式是:
e1:e2:e3
其中e1為初始值,e2為步長,e3為終止值。(e1,e2,e3均可以為正數(shù)、負數(shù)、小數(shù))
在MATLAB中,還可以用linspace函數(shù)產(chǎn)生行向量。其調(diào)用格式為:
linspace(a,b,n)
其中a和b是生成向量的第一個和最后一個元素,n是元素總數(shù)。
顯然,linspace(a,b,n)與a:(b-a)/(n-1):b等價。
5.建立大矩陣
大矩陣可由方括號中的小矩陣或向量建立起來。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)的,以m×n矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得。2.矩陣拆分
(1)利用冒號表達式獲得子矩陣
①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),從而獲得子矩陣。end表示某一維的末尾元素下標(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階矩陣A
zeros(size(A))%產(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ù)還有reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成m×n的二維矩陣。2.用于專門學(xué)科的特殊矩陣
(1)魔方矩陣
魔方矩陣有一個有趣的性質(zhì),其每行、每列及兩條對角線上的元素和都相等。對于n階魔方陣,其元素由1,2,3,…,n2共n2個整數(shù)組成。MATLAB提供了求魔方矩陣的函數(shù)magic(n),其功能是生成一個n階魔方陣。例2-5將101~125等25個數(shù)填入一個5行5列的表格中,使其每行每列及對角線的和均為565。
M=100+magic(5)
(2)范得蒙矩陣
范得蒙(Vandermonde)矩陣最后一列全為1,倒數(shù)第二列為一個指定的向量,其他各列是其后列與倒數(shù)第二列的點乘積??梢杂靡粋€指定向量生成一個范得蒙矩陣。在MATLAB中,函數(shù)vander(V)生成以向量V為基礎(chǔ)向量的范得蒙矩陣。例如,A=vander([1;2;3;5])即可得到上述范得蒙矩陣。
(3)希爾伯特矩陣
在MATLAB中,生成希爾伯特矩陣的函數(shù)是hilb(n)。
使用一般方法求逆會因為原始數(shù)據(jù)的微小擾動而產(chǎn)生不可靠的計算結(jié)果。MATLAB中,有一個專門求希爾伯特矩陣的逆的函數(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)帕斯卡矩陣
我們知道,二次項展開后的系數(shù)隨n的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡(Pascal)矩陣。函數(shù)pascal(n)生成一個n階帕斯卡矩陣。例2-7求(x+y)5的展開式。
在MATLAB命令窗口,輸入命令:
pascal(6)
矩陣次對角線上的元素1,5,10,10,5,1即為展開式的系數(shù)。
2.3MATLAB運算
2.3.1算術(shù)運算
1.基本算術(shù)運算
MATLAB的基本算術(shù)運算有:+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)。
注意,運算是在矩陣意義下進行的,單個數(shù)據(jù)的算術(shù)運算只是一種特例。
(1)矩陣加減運算
假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運算。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(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)。A\B等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。
對于含有標(biāo)量的運算,兩種除法運算的結(jié)果相同,如3/4和4\3有相同的值,都等于0.75。又如,設(shè)a=[10.5,25],則a/5=5\a=[2.10005.0000]。對于矩陣來說,左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對于矩陣運算,一般A\B≠B/A。
(4)矩陣的乘方
一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標(biāo)量。
2.點運算
在MATLAB中,有一種特殊的運算,因為其運算符是在有關(guān)算術(shù)運算符前面加點,所以叫點運算。點運算符有.*、./、.\和.^。兩矩陣進行點運算是指它們的對應(yīng)元素進行相關(guān)運算,要求兩矩陣的維參數(shù)相同。2.3.2關(guān)系運算
MATLAB提供了6種關(guān)系運算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。它們的含義不難理解,但要注意其書寫方法與數(shù)學(xué)中的不等式符號不盡相同。關(guān)系運算符的運算法則為:
(1)當(dāng)兩個比較量是標(biāo)量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為1,否則為0。
(2)當(dāng)參與比較的量是兩個維數(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組成。例2-8產(chǎn)生5階隨機方陣A,其元素為[10,90]區(qū)間的隨機整數(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ù)矩陣。此時,0被擴展為與A同維數(shù)的零矩陣,P是進行等于(==)比較的結(jié)果矩陣。2.3.3邏輯運算
MATLAB提供了3種邏輯運算符:&(與)、|(或)和~(非)。
邏輯運算的運算法則為:
(1)在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。
(2)設(shè)參與邏輯運算的是兩個標(biāo)量a和b,那么,
a&ba,b全為非零時,運算結(jié)果為1,否則為0。
a|ba,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)先級最低。例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的對角矩陣稱為單位矩陣。
(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條對角線的元素即為向量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.三角陣
三角陣又進一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角陣則是對角線以上的元素全為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)90o的k倍,當(dāng)k為1時可省略。3.矩陣的左右翻轉(zhuǎn)
對矩陣實施左右翻轉(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,使得:
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)置矩陣A‘同型的矩陣B,使得:
A·B·A=A
B·A·B=B
此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆矩陣。在MATLAB中,求一個矩陣偽逆的函數(shù)是pinv(A)。2.4.4方陣的行列式
把一個方陣看作一個行列式,并對其按行列式的規(guī)則求值,這個值就稱為矩陣所對應(yīng)的行列式的值。在MATLAB中,求方陣A所對應(yīng)的行列式的值的函數(shù)是det(A)。例2-12用克萊姆(Cramer)方法求解線性方程組。程序如下:D=[2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2];%定義系數(shù)矩陣b=[4;6;12;6];%定義常數(shù)項向量D1=[b,D(:,2:4)];%用方程組的右端向量置換D的第1列D2=[D(:,1:1),b,D(:,3:4)];%用方程組的右端向量置換D的第2列D3=[D(:,1:2),b,D(:,4:4)];%用方程組的右端向量置換D的第3列D4=[D(:,1:3),b];%用方程組的右端向量置換D的第4列DD=det(D);x1=det(D1)/DD;x2=det(D2)/DD;x3=det(D3)/DD;x4=det(D4)/DD;[x1,x2,x3,x4]2.4.5矩陣的秩與跡
1.矩陣的秩
矩陣線性無關(guān)的行數(shù)與列數(shù)稱為矩陣的秩。在MATLAB中,求矩陣秩的函數(shù)是rank(A)。
2.矩陣的跡
矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征值之和。在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ù)的函數(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-13
用求特征值的方法解方程。
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-14設(shè)X=(1,1,1),Y=(-1,2,1),Z=(2,2,2),判斷這三個向量的共線共面問題。命令如下:X=[1,1,1];Y=[-1,2,1];Z=[2,2,2];XY=[X;Y];YZ=[Y;Z];ZX=[Z;X];XYZ=[X;Y;Z];rank(XY)rank(YZ)rank(ZX)rank(XYZ)2.5矩陣的超越函數(shù)
1.矩陣平方根sqrtm
sqrtm(A)計算矩陣A的平方根。
2.矩陣對數(shù)logm
logm(A)計算矩陣A的自然對數(shù)。此函數(shù)輸入?yún)?shù)的條件與輸出結(jié)果間的關(guān)系和函數(shù)sqrtm(A)完全一樣
3.矩陣指數(shù)expm、expm1、expm2、expm3、expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都求矩陣指數(shù)eA。
4.普通矩陣函數(shù)funm
funm(A,‘fun’)用來計算直接作用于矩陣A的由‘fun’指定的超越函數(shù)值。當(dāng)fun取sqrt時,funm(A,‘sqrt’)可以計算矩陣A的平方根,與sqrtm(A)的計算結(jié)果一樣。補充知識點:
rref%化行最簡
null(A,‘r’)%求Ax=0的基礎(chǔ)解系
A(2,:)%取A的第二行
A(:,[3,4])%取A的第三、四列
A([1,3],[2,3])%取A的第1,3行與2,3列交叉的元素
[L,U]=lu(A)%將方陣A分解為交換下三角矩陣L和上三角矩陣U,使A=LU[L,U,P]=lu(A)%將方陣A分解為下三角矩陣L和上三角矩陣U,使PA=LU[Q,R]=qr(A)%求一個正交矩陣Q和一個上三角矩陣R,使A=Q*R[S,V,D]=svd(A)%求矩陣A的奇異值分解
R=chol(A)%求矩陣A的cholesky分解,A=R'*RSchur(A)%求矩陣A的schur分解
Hess(A)%求矩陣A的Hessenberg分解
Orth(A)%求矩陣A的行向量的標(biāo)準(zhǔn)正交基
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-15
建立一個字符串向量,然后對該向量做如下處理:
(1)取第1~5個字符組成的子字符串。
(2)將字符串倒過來重新排列。
(3)將字符串中的小寫字母變成相應(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)的大寫字母
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)一的變量名下進行管理。建立一個結(jié)構(gòu)矩陣可采用給結(jié)構(gòu)成員賦值的辦法。具體格式為:
結(jié)構(gòu)矩陣名.成員名=表達式
其中表達式應(yīng)理解為矩陣表達式。2.結(jié)構(gòu)成員的修改
可以根據(jù)需要增加或刪除結(jié)構(gòu)的成員。例如要給結(jié)構(gòu)矩陣a增加一個成員x4,可給a中任意一個元素增加成員x4:
a(1).x4=‘410075’;
但其他成員均為空矩陣,可以使用賦值語句給它賦確定的值。
要刪除結(jié)構(gòu)的成員,則可以使用rmfield函數(shù)來完成。例如,刪除成員x4:
a=rmfield(a,‘x4’);
3.關(guān)于結(jié)構(gòu)的函數(shù)
除了一般的結(jié)構(gòu)數(shù)據(jù)的操作外,MATLAB還提供了部分函數(shù)來進行結(jié)構(gòu)矩陣的操作。2.7.2單元數(shù)據(jù)
1.單元矩陣的建立與引用
建立單元矩陣和一般矩陣相似,只是矩陣元素用大括號括起來。
可以用帶有大括號下標(biāo)的形式引用單元矩陣元素。例如b{3,3}。單元矩陣的元素可以是結(jié)構(gòu)或單元數(shù)據(jù)。
可以使用celldisp函數(shù)來顯示整個單元矩陣,如celldisp(b)。還可以刪除單元矩陣中的某個元素。2.關(guān)于單元的函數(shù)
MATLAB還提供了部分函數(shù)用于單元的操作。2.8稀疏矩陣
2.8.1矩陣存儲方式
MATLAB的矩陣有兩種存儲方式:完全存儲方式和稀疏存儲方式。
1.完全存儲方式
完全存儲方式是將矩陣的全部元素按列存儲。以前講到的矩陣的存儲方式都是按這個方式存儲的,此存儲方式對稀疏矩陣也適用。2.稀疏存儲方式
稀疏存儲方式僅存儲矩陣所有的非零元素的值及其位置,即行號和列號。在MATLAB中,稀疏存儲方式也是按列存儲的。
注意,在講稀疏矩陣時,有兩個不同的概念,一是指矩陣的0元素較多,該矩陣是一個具有稀疏特征的矩陣,二是指采用稀疏方式存儲的矩陣。2.8.2稀疏存儲方式的產(chǎn)生
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ù)。例如
[u,v,S]=find(A):返回矩陣A中非0元素的下標(biāo)和元素。這里產(chǎn)生的u,v,S可作為sparse(u,v,S)的參數(shù)。
full(A):返回和稀疏存儲矩陣A對應(yīng)的完全存儲方式矩陣。2.產(chǎn)生稀疏存儲矩陣
只把要建立的稀疏矩陣的非0元素及其所在行和列的位置表示出來后由MATLAB自己產(chǎn)生其稀疏存儲,這需要使用spconvert函數(shù)。調(diào)用格式為:
B=spconvert(A)
其中A為一個m×3或m×4的矩陣,其每行表示一個非0元素,m是非0元素的個數(shù),A每個元素的意義是:
(i,1)第i個非0元素所在的行。
(i,2)第i個非0元素所在的列。
(i,3)第i個非0元素值的實部。
(i,4)第i個非0元素值的虛部,若矩陣的全部元素都是實數(shù),則無須第四列。
該函數(shù)將A所描述的一個稀疏矩陣轉(zhuǎn)化為一個稀疏存儲矩陣。例2-16
根據(jù)表示稀疏矩陣的矩陣A,產(chǎn)生一個稀疏存儲方式矩陣B。
命令如下:
A=[2,2,1;3,1,-1;4,3,3;5,3,8;6,6,12];
B=spconvert(A)3.帶狀稀疏存儲矩陣
用spdiags函數(shù)產(chǎn)生帶狀稀疏矩陣的稀疏存儲,調(diào)用格式是:
A=spdiags(B,d,m,n)
其中,參數(shù)m,n為原帶狀矩陣的行數(shù)與列數(shù)。B為r×p階矩陣,這里r=min(m,n),p為原帶狀矩陣所有非零對角線的條數(shù),矩陣B的第i列即為原帶狀矩陣的第i條非零對角線。4.單位矩陣的稀疏存儲
單位矩陣只有對角線元素為1,其他元素都為0,是一種具有稀疏特征的矩陣。函數(shù)eye產(chǎn)生一個完全存儲方式的單位矩陣。MATLAB還有一個產(chǎn)生稀疏存儲方式的單位矩陣的函數(shù),這就是speye。函數(shù)speye(m,n)返回一個m×n的稀疏存儲單位矩陣。2.8.3稀疏矩陣應(yīng)用舉例
稀疏存儲矩陣只是矩陣的存儲方式不同,它的運算規(guī)則與普通矩陣是一樣的。所以,在運算過程中,稀疏存儲矩陣可以直接參與運算。當(dāng)參與運算的對象不全是稀疏存儲矩陣時,所得結(jié)果一般是完全存儲形式。第3章MATLAB程序設(shè)計3.1M文件3.2程序控制結(jié)構(gòu)3.3函數(shù)文件3.4程序舉例3.5程序調(diào)試3.1M文件3.1.1M文件概述用MATLAB語言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(ScriptFile)和函數(shù)文件(FunctionFile)。例3-1分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。程序1:(命令文件、腳本式文件)首先建立命令文件并以文件名f2c.m存盤。clear;%清除工作空間中的變量f=input('InputFahrenheittemperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中輸入f2c,將會執(zhí)行該命令文件,執(zhí)行情況為:InputFahrenheittemperature:73c=22.7778程序2(函數(shù)式文件)首先建立函數(shù)文件f2c.m。functionc=f2c(f)c=5*(f-32)/9然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。clear;y=input('InputFahrenheittemperature:');x=f2c(y)輸出情況為:InputFahrenheittemperature:70c=21.1111x=21.11113.1.2M文件的建立與打開
M文件是一個文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。1.建立新的M文件
(1)菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項,再選擇M-file命令,屏幕上將出現(xiàn)MATLAB文本編輯器窗口。
(2)命令操作。在MATLAB命令窗口輸入命令edit,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。
(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的NewM-File命令按鈕,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。2.打開已有的M文件
(1)菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對話框,在Open對話框中選中所需打開的M文件。在文檔窗口可以對打開的M文件進行編輯修改,編輯完成后,將M文件存盤。
(2)命令操作。在MATLAB命令窗口輸入命令:edit文件名,則打開指定的M文件。
(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的OpenFile命令按鈕,再從彈出的對話框中選擇所需打開的M文件。3.2程序控制結(jié)構(gòu)3.2.1順序結(jié)構(gòu)1.?dāng)?shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來進行,該函數(shù)的調(diào)用格式為:
A=input(提示信息,選項);其中提示信息為一個字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。如果在input函數(shù)調(diào)用時采用's'選項,則允許用戶輸入一個字符串。例如,想輸入一個人的姓名,可采用命令:
xm=input('What''syourname?','s');2.?dāng)?shù)據(jù)的輸出
MATLAB提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為
disp(輸出項)其中輸出項既可以為字符串,也可以為矩陣。例3-2輸入x,y的值,并將它們的值互換后輸出。程序如下:
x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;
disp(x);
disp(y);例3-3求一元二次方程ax2+bx+c=0的根。程序如下:a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);將數(shù)值型轉(zhuǎn)化為字符型3.程序的暫停暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)用格式為:
pause(延遲秒數(shù))
如果省略延遲時間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。
若要強行中止程序的運行可使用Ctrl+C命令。3.2.2選擇結(jié)構(gòu)1.if語句在MATLAB中,if語句有3種格式。
(1)單分支if語句:
if
條件語句組
end
當(dāng)條件成立時,則執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行if語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。
(2)雙分支if語句:
if
條件語句組1else
語句組2end
當(dāng)條件成立時,執(zhí)行語句組1,否則執(zhí)行語句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行if語句的后繼語句。例3-4計算分段函數(shù)的值。
程序如下:
x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endY
(3)多分支if語句:
if
條件1
語句組1
elseif條件2
語句組2
……
elseif條件m
語句組melse
語句組nend語句用于實現(xiàn)多分支選擇結(jié)構(gòu)。例3-5輸入一個字符,若為大寫字母,則輸出其對應(yīng)的小寫字母;若為小寫字母,則輸出其對應(yīng)的大寫字母;若為數(shù)字字符則輸出其對應(yīng)的數(shù)值,若為其他字符則原樣輸出。
c=input('請輸入一個字符','s');ifc>='A'&c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'
disp(setstr(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));else
disp(c);end2.switch語句
switch語句根據(jù)表達式的取值不同,分別執(zhí)行不同的語句,其語句格式為:
switch表達式
case表達式1
語句組1case表達式2
語句組2……case表達式m
語句組motherwise
語句組n
end當(dāng)表達式的值等于表達式1的值時,執(zhí)行語句組1,當(dāng)表達式的值等于表達式2的值時,執(zhí)行語句組2,…,當(dāng)表達式的值等于表達式m的值時,執(zhí)行語句組m,當(dāng)表達式的值不等于case所列的表達式的值時,執(zhí)行語句組n。當(dāng)任意一個分支的語句執(zhí)行完后,直接執(zhí)行switch語句的下一句。例3-6某商場對顧客所購買的商品實行打折銷售,標(biāo)準(zhǔn)如下(商品價格用price來表示):
price<200沒有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣5000≤price14%折扣輸入所售商品的價格,求其實際銷售價格。
程序如下:price=input('請輸入商品價格');switchfix(price/100)case{0,1}%價格小于200rate=0;case{2,3,4}%價格大于等于200但小于500rate=3/100;casenum2cell(5:9)%價格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%價格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%價格大于等于2500但小于5000rate=10/100;otherwise%價格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實際銷售價格3.try語句語句格式為:
try
語句組1catch
語句組2endtry語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。例3-7矩陣乘法運算要求兩矩陣的維數(shù)相容,否則會出錯。先求兩矩陣的乘積,若出錯,則自動轉(zhuǎn)去求兩矩陣的點乘。程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%顯示出錯原因3.2.3循環(huán)結(jié)構(gòu)1.for語句for語句的格式為:
for
循環(huán)變量=表達式1:表達式2:表達式3
循環(huán)體語句
end其中表達式1的值為循環(huán)變量的初值,表達式2的值為步長,表達式3的值為循環(huán)變量的終值。步長為1時,表達式2可以省略。例3-8一個三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。程序如下:form=100:999m1=fix(m/100);%求m的百位數(shù)字m2=rem(fix(m/10),10);%求m的十位數(shù)字m3=rem(m,10);%求m的個位數(shù)字ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend例3-9已知,當(dāng)n=100時,求y的值。程序如下:y=0;n=100;fori=1:ny=y+1/(2*i-1);endy
在實際MATLAB編程中,采用循環(huán)語句會降低其執(zhí)行速度,所以前面的程序通常由下面的程序來代替:
n=100;i=1:2:2*n-1;y=sum(1./i);yfor語句更一般的格式為:
for循環(huán)變量=矩陣表達式循環(huán)體語句
end
執(zhí)行過程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。例3-10寫出下列程序的執(zhí)行結(jié)果。
s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;end
disp(s');2.while語句
while語句的一般格式為:
while(條件)
循環(huán)體語句
end
其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。
例3-11從鍵盤輸入若干個數(shù),當(dāng)輸入0時結(jié)束輸入,求這些數(shù)的平均值和它們之和。程序如下:
sum=0;cnt=0;val=input('Enteranumber(endin0):');while(val~=0)
sum=sum+val;
cnt=cnt+1;
val=input('Enteranumber(endin0):');endif(cnt>0)
sum
mean=sum/cntend3.break語句、continue語句和return語句continue命令也常與for或while命令一起使用,作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的命令,接著進行下一次是否執(zhí)行循環(huán)的判斷。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。break命令經(jīng)常與for和while等語句一起使用,其作用是跳出最內(nèi)層循環(huán)。使用break命令可以不必等到循環(huán)的自然結(jié)束,而是根據(jù)條件,退出循環(huán)。return命令能使當(dāng)前正在運行的函數(shù)正常退出,并返回調(diào)用它的函數(shù),繼續(xù)運行。例3-12求[100,200]之間第一個能被21整除的整數(shù)。程序如下:
forn=100:200ifrem(n,21)~=0
continueendbreakendn4.循環(huán)的嵌套如果一個循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)。例3-13若一個數(shù)等于它的各個真因子之和,則稱該數(shù)為完數(shù),如6=1+2+3,所以6是完數(shù)。求[1,500]之間的全部完數(shù)。
form=1:500s=0;fork=1:m/2if
rem(m,k)==0s=s+k;endendifm==s
disp(m);endend
3.3函數(shù)文件3.3.1函數(shù)文件的基本結(jié)構(gòu)函數(shù)文件由function語句引導(dǎo),其基本結(jié)構(gòu)為:
function輸出形參表=函數(shù)名(輸入形參表)
注釋說明部分函數(shù)體語句其中以function開頭的一行為引導(dǎo)行,表示該M文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當(dāng)輸出形參多于一個時,則應(yīng)該用方括號括起來。例3-14編寫函數(shù)文件求半徑為r的圓的面積和周長。函數(shù)文件如下:
function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑
%s圓面積
%p圓周長
%2004年7月30日編
s=pi*r*r;p=2*pi*r;3.3.2函數(shù)調(diào)用函數(shù)調(diào)用的一般格式是:
[輸出實參表]=函數(shù)名(輸入實參表)
要注意的是,函數(shù)調(diào)用時各實參出現(xiàn)的順序、個數(shù),應(yīng)與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯。函數(shù)調(diào)用時,先將實參傳遞給相應(yīng)的形參,從而實現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。注意:當(dāng)存儲的函數(shù)文件名與函數(shù)名不一致時,調(diào)用時以函數(shù)文件名為準(zhǔn)。
例3-15利用函數(shù)文件,實現(xiàn)直角坐標(biāo)(x,y)與極坐標(biāo)(ρ,θ)之間的轉(zhuǎn)換。函數(shù)文件tran.m:
function[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);
調(diào)用tran.m的命令文件main1.m:
x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y);rhothe
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省汕頭市澄海區(qū)2025-2026學(xué)年上學(xué)期七年級數(shù)學(xué)期末試題(含答案)
- 中學(xué)教師績效考核制度
- 養(yǎng)老院入住老人醫(yī)療保健制度
- 企業(yè)內(nèi)部保密工作執(zhí)行制度
- CCAA - 2022年12月認通基答案及解析 - 詳解版(62題)
- 呂蒙介紹教學(xué)課件
- 老年終末期壓瘡護理中的環(huán)境優(yōu)化策略
- 老年終末期壓瘡護理中人文關(guān)懷實施策略
- 城市軌道交通行車值班員班組考核強化考核試卷含答案
- 選礦供料工崗前操作規(guī)程考核試卷含答案
- 二手房提前交房協(xié)議書
- 2025年高考物理 微專題十 微元法(講義)(解析版)
- 2025年國家能源投資集團有限責(zé)任公司校園招聘筆試備考題庫含答案詳解(新)
- 形位公差培訓(xùn)講解
- 醫(yī)學(xué)影像肺部結(jié)節(jié)診斷與處理
- 藥店物價收費員管理制度
- 數(shù)據(jù)風(fēng)險監(jiān)測管理辦法
- 2025年數(shù)字經(jīng)濟下靈活就業(yè)發(fā)展研究報告-新京報-202605
- 兒童語言發(fā)育遲緩課件
- 2025年河南省鄭州市中考一模英語試題及答案
- 防爆箱技術(shù)協(xié)議書
評論
0/150
提交評論