版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第2 2講講 MATLABMATLAB程序設計程序設計第第4章章 MATLAB程序設計(掌握)程序設計(掌握)4.1 M文件文件4.2 程序控制結構程序控制結構4.3 函數(shù)文件函數(shù)文件4.4 程序調試程序調試第第3章章 MATLAB矩陣分析與處理(掌握)矩陣分析與處理(掌握)3.1 特殊矩陣特殊矩陣 3.3 矩陣求逆與線性方程組求解矩陣求逆與線性方程組求解3.4 矩陣求值矩陣求值 3.5 矩陣的特征值與特征向量矩陣的特征值與特征向量內容提要內容提要 3.1 特殊矩陣特殊矩陣3.1.1 通用的特殊矩陣通用的特殊矩陣zeros:產(chǎn)生全:產(chǎn)生全0矩陣矩陣(零矩陣零矩陣)。ones:產(chǎn)生全:產(chǎn)生全1
2、矩陣矩陣(幺矩陣幺矩陣)。eye:產(chǎn)生單位矩陣。:產(chǎn)生單位矩陣。rand:產(chǎn)生:產(chǎn)生01間均勻分布的隨機矩陣。間均勻分布的隨機矩陣。randn:產(chǎn)生均值為:產(chǎn)生均值為0,方差為,方差為1的標準正態(tài)分布隨機矩陣。的標準正態(tài)分布隨機矩陣。調用格式都是調用格式都是(以以zeros為例為例):zeros(m):產(chǎn)生產(chǎn)生m*m方陣方陣zeros(m,n):產(chǎn)生產(chǎn)生m*n矩陣矩陣zeros(size(A):產(chǎn)生與矩陣:產(chǎn)生與矩陣A同樣大小的矩陣同樣大小的矩陣例例3.1 分別建立分別建立33、32和與矩陣和與矩陣A同樣大小的零矩陣。同樣大小的零矩陣。(1) 建立一個建立一個33零矩陣。零矩陣。zeros(3
3、) (2) 建立一個建立一個32零矩陣。零矩陣。zeros(3,2) (3) 設設A為為23矩陣,則可以用矩陣,則可以用zeros(size(A)建立一個與矩建立一個與矩陣陣A同樣大小零矩陣。同樣大小零矩陣。A=1 2 3;4 5 6; %產(chǎn)生一個產(chǎn)生一個23階矩陣階矩陣Azeros(size(A) %產(chǎn)生一個與矩陣產(chǎn)生一個與矩陣A同樣大小的零矩陣同樣大小的零矩陣 例例3.2 3.2 建立隨機矩陣:建立隨機矩陣:(1) (1) 在區(qū)間在區(qū)間20,5020,50內均勻分布的內均勻分布的5 5階隨機矩陣。階隨機矩陣。說明:說明: randrand函數(shù)產(chǎn)生函數(shù)產(chǎn)生(0,1)(0,1)區(qū)間均勻分布的隨
4、機矩區(qū)間均勻分布的隨機矩陣。假設得到了一組滿足(陣。假設得到了一組滿足(0 0,1 1)區(qū)間均勻分布的)區(qū)間均勻分布的隨機數(shù)隨機數(shù) x xi i, ,則若想得到在任意則若想得到在任意a,ba,b區(qū)間上均勻分布區(qū)間上均勻分布的隨機數(shù),用公式的隨機數(shù),用公式a+(b-a)iiyx所以,該題命令為:x=20+(50-20)*rand(5) 例例3.2 3.2 建立隨機矩陣:建立隨機矩陣:(2) (2) 均值為均值為0.60.6、方差為、方差為0.10.1的的5 5階正態(tài)分布隨機矩陣。階正態(tài)分布隨機矩陣。說明:說明:randnrandn函數(shù)是產(chǎn)生均值為函數(shù)是產(chǎn)生均值為0 0,方差為,方差為1 1的標準
5、正的標準正態(tài)分布隨機矩陣;假設已經(jīng)得到了一組標準正態(tài)分布態(tài)分布隨機矩陣;假設已經(jīng)得到了一組標準正態(tài)分布隨機數(shù)隨機數(shù)x xi i,如果想得到均值為,如果想得到均值為 方差為方差為 的隨機數(shù),的隨機數(shù),可用可用iiyx2命令如下: y=0.6+sqrt(0.1)*randn(5)3.2 3.2 矩陣結構變換矩陣結構變換3.2.1 3.2.1 對角陣與三角陣對角陣與三角陣1.1.對角陣對角陣 只有對角線上有非0元素的矩陣稱為對角矩陣。對角線上的元素都為1的對角矩陣稱為單位矩陣。 (1) (1) 提取提取矩陣的對角線元素矩陣的對角線元素 設設A A為為m mn n矩陣,矩陣,diag(A)diag(A
6、)函數(shù)用于提取矩陣函數(shù)用于提取矩陣A A主對角線主對角線元素,產(chǎn)生一個具有元素,產(chǎn)生一個具有min(m,n)min(m,n)個元素的列向量。個元素的列向量。 A=1,2,3;4,5,6; D=diag(A)3.2 3.2 矩陣結構變換矩陣結構變換 diag(A) diag(A)函數(shù)還有一種形式函數(shù)還有一種形式diag(A,k)diag(A,k),其功能,其功能是提取第是提取第k k條對角線條對角線( (主對角線為第主對角線為第0 0條,與其平行條,與其平行往上為第往上為第1 1條,第條,第2 2條條.,往下為第,往下為第-1,-2.-1,-2.條條) )的元素。的元素。 A=1,2,3;4,5
7、,6;D=diag(A,1) A=1,2,3;4,5,6;D=diag(A,-1)(2) (2) 構造構造對角矩陣對角矩陣 設設V V為具有為具有m m個元素的向量,個元素的向量,diag(V)diag(V)將產(chǎn)生一將產(chǎn)生一個個m mm m對角矩陣,其主對角線元素即為向量對角矩陣,其主對角線元素即為向量V V的的元素。元素。diag(1,2,-1,4) diag(V)diag(V)函數(shù)也有另一種形式函數(shù)也有另一種形式didiag(V,k)ag(V,k),其,其功能是產(chǎn)生一個功能是產(chǎn)生一個n nn(n=m+|k|n(n=m+|k|,m m為向量的個數(shù)為向量的個數(shù)) )對角陣,其第對角陣,其第k
8、k條對角線的元素即為向量條對角線的元素即為向量V V的元素。的元素。diag(1:3,-1) 例例3.6 3.6 先建立先建立5 55 5矩陣矩陣A A,然后將,然后將A A的第一行元素的第一行元素乘以乘以1 1,第二行乘以,第二行乘以2 2,第五行乘以,第五行乘以5 5。 思考過程:思考過程:用一個對角陣用一個對角陣左乘左乘一個矩陣時,相一個矩陣時,相當于用對角陣的第一個元素乘以該矩陣的第一行,當于用對角陣的第一個元素乘以該矩陣的第一行,用對角陣的第二個元素乘以該矩陣的第二行,用對角陣的第二個元素乘以該矩陣的第二行, .以此類推。因此,只要構造一個對角矩陣以此類推。因此,只要構造一個對角矩陣
9、D D,然,然后用后用D D左乘左乘A A即可。即可。 A=ones(5); D=diag(1:5); D*A注意:注意:如果要對如果要對A A的每列元素乘以同一個數(shù),可以用的每列元素乘以同一個數(shù),可以用一個對角陣右乘矩陣一個對角陣右乘矩陣A A2三角陣 分為上三角陣和下三角陣;所謂上三角陣,即分為上三角陣和下三角陣;所謂上三角陣,即矩陣的對角線以下的元素全為矩陣的對角線以下的元素全為0 0的一種矩陣,而下的一種矩陣,而下三角陣則是對角線以上的元素全為三角陣則是對角線以上的元素全為0 0的一種矩陣。的一種矩陣。 (1) (1) 上三角矩陣上三角矩陣 矩陣矩陣A A的上三角陣的上三角陣B B是與
10、是與A A同型的矩陣,其對角線以上(含同型的矩陣,其對角線以上(含對角線)的元素和對角線)的元素和A A對應相等,而對角線以下的元素等于對應相等,而對角線以下的元素等于0 0。求。求矩陣矩陣A A的上三角陣的的上三角陣的MATLABMATLAB函數(shù)是函數(shù)是triu(A)triu(A)。 A=7,13,-28;2,-9,8;0,34,5; B=triu(A) 函數(shù)也有另一種形式函數(shù)也有另一種形式triu(A,k)triu(A,k),其功能是求矩陣,其功能是求矩陣A A的第的第k k條對角線以上的元素。例如,提取矩陣條對角線以上的元素。例如,提取矩陣A A的第的第2 2條對角線以上條對角線以上的元
11、素,形成新的矩陣的元素,形成新的矩陣B B。 (1) (1) 上三角矩陣上三角矩陣 求矩陣求矩陣A A的上三角陣的的上三角陣的MATLABMATLAB函數(shù)是函數(shù)是triu(A)triu(A)。triu(A)triu(A)函數(shù)也有另一種形式函數(shù)也有另一種形式triu(A,k)triu(A,k),其功能是求矩陣,其功能是求矩陣A A的第的第k k條對角線以上的元素。例如,提取矩陣條對角線以上的元素。例如,提取矩陣A A的第的第2 2條對角條對角線以上的元素,形成新的矩陣線以上的元素,形成新的矩陣B B。(2) (2) 下三角矩陣下三角矩陣在在MATLABMATLAB中,提取矩陣中,提取矩陣A A的
12、下三角矩陣的函數(shù)是的下三角矩陣的函數(shù)是tril(A)tril(A)和和tril(A,k)tril(A,k),其用法與提取上三角矩陣的函數(shù),其用法與提取上三角矩陣的函數(shù)triu(A)triu(A)和和triu(A,k)triu(A,k)完全相同。完全相同。v1.矩陣的轉置矩陣的轉置v轉置運算符是單撇號轉置運算符是單撇號 3.3 3.3 矩陣求逆與線性方程組求解矩陣求逆與線性方程組求解3.3.1 3.3.1 矩陣的逆與偽逆矩陣的逆與偽逆對于一個方陣對于一個方陣A A,如果存在一個與其同階的方陣,如果存在一個與其同階的方陣B B,使得:,使得:A AB=BB=BA=I (IA=I (I為單位矩陣為單
13、位矩陣) )則稱則稱B B為為A A的逆矩陣,當然,的逆矩陣,當然,A A也是也是B B的逆矩陣。的逆矩陣。求一個矩陣的逆是一件非常煩瑣的工作,容易出錯,但求一個矩陣的逆是一件非常煩瑣的工作,容易出錯,但在在MATLABMATLAB中,求一個矩陣的逆非常容易。中,求一個矩陣的逆非常容易。求方陣求方陣A A的逆的逆矩陣可調用函數(shù)矩陣可調用函數(shù)inv(A)inv(A)。3.3.2 3.3.2 用矩陣求逆方法求解線性方程組用矩陣求逆方法求解線性方程組在線性方程組在線性方程組Ax=bAx=b兩邊各左乘兩邊各左乘A A-1-1,有,有A A-1-1Ax=AAx=A-1-1b b由于由于A A-1-1A=
14、IA=I,故得,故得x=Ax=A-1-1b b例例3.8 3.8 用求逆矩陣的方法解線性方程組用求逆矩陣的方法解線性方程組A=1,2,3;1,4,9;1,8,27; A=1,2,3;1,4,9;1,8,27; b=5,-2,6; b=5,-2,6; x=inv(A)x=inv(A)* *b b也可以運用左除運算符也可以運用左除運算符“”求解線性代數(shù)方程組。求解線性代數(shù)方程組。6278294532zyxzyxzyx3.4 3.4 矩陣求值矩陣求值 3.4.1 3.4.1 方陣的行列式方陣的行列式把一個方陣看作一個行列式,并對其按行列式的規(guī)則把一個方陣看作一個行列式,并對其按行列式的規(guī)則求值,這個
15、值就稱為所對應的行列式的值。在求值,這個值就稱為所對應的行列式的值。在MATLABMATLAB中,求方陣中,求方陣A A所對應的行列式的值的函數(shù)是所對應的行列式的值的函數(shù)是det(A)det(A)。 3.4.2 3.4.2 矩陣的秩與跡矩陣的秩與跡1 1矩陣的秩矩陣的秩矩陣線性無關的行數(shù)與列數(shù)稱為矩陣的秩。在矩陣線性無關的行數(shù)與列數(shù)稱為矩陣的秩。在MATLABMATLAB中,中,求矩陣秩的函數(shù)是求矩陣秩的函數(shù)是rank(A)rank(A)。2 2矩陣的跡矩陣的跡矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征值之和。在征值之和。在MATLABM
16、ATLAB中,求矩陣的跡的函數(shù)是中,求矩陣的跡的函數(shù)是trace(A)trace(A)。 3.5 3.5 矩陣的特征值與特征向量矩陣的特征值與特征向量在在MATLABMATLAB中,計算矩陣中,計算矩陣A A的特征值和特征向量的函數(shù)是的特征值和特征向量的函數(shù)是eig(A)eig(A),常用的調用格式有,常用的調用格式有3 3種:種:(1) E=eig(A)(1) E=eig(A):求矩陣:求矩陣A A的全部特征值,構成向量的全部特征值,構成向量E E。(2) V,D=eig(A)(2) V,D=eig(A):求矩陣:求矩陣A A的全部特征值,構成對角的全部特征值,構成對角陣陣D D,并求,并求
17、A A的特征向量構成的特征向量構成V V的列向量。的列向量。 (3) V,D=eig(A,(3) V,D=eig(A,nobalancenobalance) ):與第:與第2 2種格式類似,種格式類似,但第但第2 2種格式中先對種格式中先對A A作相似變換后求矩陣作相似變換后求矩陣A A的特征值和的特征值和特征向量,而格式特征向量,而格式3 3直接求矩陣直接求矩陣A A的特征值和特征向量。的特征值和特征向量。 例例3.9 3.9 用求特征值的方法解方程。用求特征值的方法解方程。3x3x5 5-7x-7x4 4+5x+5x2 2+2x-18=0+2x-18=0p=3,-7,0,5,2,-18;p
18、=3,-7,0,5,2,-18;A=compan(p); %AA=compan(p); %A的伴隨矩陣的伴隨矩陣x1=eig(A) %x1=eig(A) %求求A A的特征值的特征值x2=roots(p) %x2=roots(p) %直接求多項式直接求多項式p p的零點的零點MATLABMATLAB常用矩陣分析與處理函數(shù)總結常用矩陣分析與處理函數(shù)總結一、常用特殊矩陣一、常用特殊矩陣zeroszeros:產(chǎn)生全:產(chǎn)生全0 0矩陣矩陣( (零矩陣零矩陣) )。onesones:產(chǎn)生全:產(chǎn)生全1 1矩陣矩陣( (幺矩陣幺矩陣) )。eyeeye:產(chǎn)生單位矩陣。:產(chǎn)生單位矩陣。randrand:產(chǎn)生:
19、產(chǎn)生0 01 1間均勻分布的隨機矩陣。間均勻分布的隨機矩陣。randnrandn:產(chǎn)生均值為:產(chǎn)生均值為0 0,方差為,方差為1 1的標準正態(tài)分布隨機矩陣。的標準正態(tài)分布隨機矩陣。magic(n)magic(n):生成一個:生成一個n n階魔方矩陣。階魔方矩陣。compan(p)compan(p):生成多項式系數(shù)向量的伴隨矩陣。:生成多項式系數(shù)向量的伴隨矩陣。pascal(n)pascal(n):生成一個:生成一個n n階帕斯卡矩陣。階帕斯卡矩陣。MATLABMATLAB常用矩陣分析與處理函數(shù)總結常用矩陣分析與處理函數(shù)總結二、常用矩陣分析與處理函數(shù)二、常用矩陣分析與處理函數(shù)A A:求:求A A
20、矩陣的轉置矩陣。矩陣的轉置矩陣。inv(A)inv(A):求:求A A矩陣的逆。矩陣的逆。det(A)det(A):求方陣:求方陣A A所對應的行列式的值。所對應的行列式的值。rank(A)rank(A):求矩陣:求矩陣A A的秩。的秩。trace(A)trace(A):求矩陣:求矩陣A A的跡。的跡。eig(A)eig(A):計算矩陣:計算矩陣A A的特征值和特征向量。的特征值和特征向量。 4.1 M4.1 M文件文件 4.1.1 M4.1.1 M文件的分類文件的分類 用用MATLABMATLAB語言編寫的程序,稱為語言編寫的程序,稱為M M文件。文件。M M文件可以根據(jù)文件可以根據(jù)調用方式
21、的不同分為兩類:調用方式的不同分為兩類:命令文件命令文件(Script File)(Script File)和和函數(shù)文件函數(shù)文件(Function File)(Function File)。例例4.1 4.1 建立一個命令文件將變量建立一個命令文件將變量a,ba,b的值互換,然后的值互換,然后運行該命令文件。運行該命令文件。程序程序1 1:首先建立命令文件并以文件名:首先建立命令文件并以文件名exch.mexch.m存盤:存盤:clear;clear;a=1:10;a=1:10;b=11,12,13,14;15,16,17,18;b=11,12,13,14;15,16,17,18;c=a;a=
22、b;b=c;c=a;a=b;b=c;a ab b然后在命令窗口中輸入然后在命令窗口中輸入exchexch,將會執(zhí)行該命令文件。,將會執(zhí)行該命令文件。程序程序2 2:首先建立函數(shù)文件:首先建立函數(shù)文件fexch.mfexch.m:function a,b=exch(a,b)function a,b=exch(a,b)c=a;a=b;b=c;c=a;a=b;b=c;然后在然后在MATLABMATLAB的命令窗口調用該函數(shù)文件:的命令窗口調用該函數(shù)文件:clear;clear;x=1:10;x=1:10;y=11,12,13,14;15,16,17,18;y=11,12,13,14;15,16,17
23、,18;x,y=fexch(x,y)x,y=fexch(x,y)4.1.2 M4.1.2 M文件的建立與打開文件的建立與打開1 1建立新的建立新的M M文件文件 為建立新的為建立新的M M文件,啟動文件,啟動MATLABMATLAB文本編輯器有文本編輯器有3 3種方法:種方法: (1)(1)菜單操作:從菜單操作:從FileFile菜單中選擇菜單中選擇NewNew菜單項,再選擇菜單項,再選擇M-M-filefile命令,屏幕上將出現(xiàn)命令,屏幕上將出現(xiàn)MATLABMATLAB文本編輯器窗口。文本編輯器窗口。 (2)(2)命令操作:在命令操作:在MATLABMATLAB命令窗口輸入命令命令窗口輸入命
24、令editedit,啟動,啟動MATLABMATLAB文本編輯器后,輸入文本編輯器后,輸入M M文件的內容并存盤。文件的內容并存盤。 (3)(3)命令按鈕操作:單擊命令按鈕操作:單擊MATLABMATLAB主窗口工具欄上的主窗口工具欄上的New New M-FileM-File命令按鈕,啟動命令按鈕,啟動MATLABMATLAB文本編輯器后,輸入文本編輯器后,輸入M M文文件的內容并存盤。件的內容并存盤。2 2打開已有的打開已有的M M文件文件 打開已有的打開已有的M M文件,也有文件,也有3 3種方法:種方法: (1)(1)菜單操作:從菜單操作:從FileFile菜單中選擇菜單中選擇Open
25、Open命令,則屏幕命令,則屏幕出現(xiàn)出現(xiàn)OpenOpen對話框,在對話框,在OpenOpen對話框中選中所需打開的對話框中選中所需打開的M M文件。文件。 (2)(2)命令操作。在命令操作。在MATLABMATLAB命令窗口輸入命令:命令窗口輸入命令:edit edit 文文件名,則打開指定的件名,則打開指定的M M文件。文件。 (3)(3)命令按鈕操作。單擊命令按鈕操作。單擊MATLABMATLAB主窗口工具欄上的主窗口工具欄上的Open FileOpen File命令按鈕,再從彈出的對話框中選擇所需命令按鈕,再從彈出的對話框中選擇所需打開的打開的M M文件。文件。4.2 4.2 程序控制結
26、構程序控制結構4.2.1 4.2.1 順序結構順序結構1 1數(shù)據(jù)的輸入數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),可以使用從鍵盤輸入數(shù)據(jù),可以使用inputinput函數(shù)來進行,調用格式為:函數(shù)來進行,調用格式為: A=input(A=input(提示信息,選項提示信息,選項) );其中提示信息為一個字符串,提示用戶輸入什么樣的數(shù)據(jù)。其中提示信息為一個字符串,提示用戶輸入什么樣的數(shù)據(jù)。如果在如果在inputinput函數(shù)調用時采用函數(shù)調用時采用ss選項,則允許用戶輸入一選項,則允許用戶輸入一個字符串。例如,想輸入一個人的姓名,可采用命令:個字符串。例如,想輸入一個人的姓名,可采用命令:xm=input(What
27、s your name?,s);xm=input(Whats your name?,s);2 2數(shù)據(jù)的輸出數(shù)據(jù)的輸出 MATLABMATLAB提供的命令窗口輸出函數(shù)主要有提供的命令窗口輸出函數(shù)主要有dispdisp函數(shù),其函數(shù),其調用格式為調用格式為 disp(disp(輸出項輸出項) ) 其中輸出項既可以為字符串,也可以為矩陣。其中輸出項既可以為字符串,也可以為矩陣。例例4.2 4.2 求一元二次方程求一元二次方程axax2 2+bx+c=0+bx+c=0的根。的根。程序如下:程序如下:a=input(a=?);a=input(a=?);b=input(b=?);b=input(b=?);c
28、=input(c=?);c=input(c=?);d=bd=b* *b-4b-4* *a a* *c;c;x=(-b+sqrt(d)/(2x=(-b+sqrt(d)/(2* *a),(-b-sqrt(d)/(2a),(-b-sqrt(d)/(2* *a);a);disp(x1=,num2str(x(1),x2=,num2str(x(2);disp(x1=,num2str(x(1),x2=,num2str(x(2); 3 3程序的暫停程序的暫停 暫停程序的執(zhí)行可以使用暫停程序的執(zhí)行可以使用pausepause函數(shù),其調用格式為:函數(shù),其調用格式為: pause(pause(延遲秒數(shù)延遲秒數(shù)) )
29、 如果省略延遲時間,直接使用如果省略延遲時間,直接使用pausepause,則將暫停程序,則將暫停程序, 直到用戶按任一鍵后程序繼續(xù)執(zhí)行。直到用戶按任一鍵后程序繼續(xù)執(zhí)行。 若要強行中止程序的運行可使用若要強行中止程序的運行可使用Ctrl+CCtrl+C命令。命令。4.2.2 4.2.2 選擇結構選擇結構1 1ifif語句語句 在在MATLABMATLAB中,中,ifif語句有語句有3 3種格式。種格式。 (1) (1) 單分支單分支ifif語句:語句: if if 條件條件 語句組語句組 endend (2) (2) 雙分支雙分支ifif語句:語句: if if 條件條件 語句組語句組1 1
30、else else 語句組語句組2 2 end end 例例4.3 4.3 計算分段函數(shù)計算分段函數(shù)程序如下:程序如下:x=input(x=input(請輸入請輸入x x的值的值:);:);if x=10if x=10 y=cos(x+1)+sqrt(x y=cos(x+1)+sqrt(x* *x+1);x+1);elseelse y=x y=x* *sqrt(x+sqrt(x);sqrt(x+sqrt(x);endendy y2cos(1)1,10,10 xxxyx xxx (3) (3) 多分支多分支ifif語句:語句: if if 條件條件1 1 語句組語句組1 1 elseif els
31、eif 條件條件2 2 語句組語句組2 2 elseif elseif 條件條件m m 語句組語句組m m else else 語句組語句組n n end end例例4.44.4c=input(請輸入一個字符請輸入一個字符,s);if c=A & c=a& c=0& c=9 disp(char(c); else disp(c);end2 2switchswitch語句語句 switch switch 表達式表達式 case case 表達式表達式1 1 語句組語句組1 1 case case 表達式表達式2 2 語句組語句組2 2 case case 表達式表達式m m
32、 語句組語句組m m otherwise otherwise 語句組語句組n n end end 當表達式的值等于表達式當表達式的值等于表達式1 1的值時,執(zhí)行語句組的值時,執(zhí)行語句組1 1,當表,當表達式的值等于表達式達式的值等于表達式2 2的值時,執(zhí)行語句組的值時,執(zhí)行語句組2 2,當表,當表達式的值等于表達式達式的值等于表達式m m的值時,執(zhí)行語句組的值時,執(zhí)行語句組m m,當表達式,當表達式的值不等于的值不等于casecase所列的表達式的值時,執(zhí)行語句組所列的表達式的值時,執(zhí)行語句組n n。當任意一個分支的語句執(zhí)行完后,直接執(zhí)行當任意一個分支的語句執(zhí)行完后,直接執(zhí)行switchswi
33、tch語句語句的下一句。的下一句。例例4.5 4.5 某商場對顧客所購買的商品實行打折銷售,標準某商場對顧客所購買的商品實行打折銷售,標準如下如下( (商品價格用商品價格用priceprice來表示來表示) ): price200 price200 沒有折扣沒有折扣 200price500 3%200price500 3%折扣折扣 500price1000 5%500price1000 5%折扣折扣 1000price2500 8%1000price2500 8%折扣折扣 2500price5000 10%2500price 0) sum mean=sum/nend3 3breakbreak語
34、句和語句和continuecontinue語句語句 與循環(huán)結構相關的語句還有與循環(huán)結構相關的語句還有breakbreak語句和語句和continuecontinue語語句。它們一般與句。它們一般與ifif語句配合使用。語句配合使用。 breakbreak語句用于終止循環(huán)的執(zhí)行語句用于終止循環(huán)的執(zhí)行。當在循環(huán)體內執(zhí)行。當在循環(huán)體內執(zhí)行到該語句時,程序將跳出循環(huán),繼續(xù)執(zhí)行循環(huán)語句的下到該語句時,程序將跳出循環(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。一語句。 continuecontinue語句控制跳過循環(huán)體中的某些語句語句控制跳過循環(huán)體中的某些語句。當在循。當在循環(huán)體內執(zhí)行到該語句時,程序將跳過循環(huán)體中所有
35、剩下環(huán)體內執(zhí)行到該語句時,程序將跳過循環(huán)體中所有剩下的語句,的語句,繼續(xù)下一次循環(huán)繼續(xù)下一次循環(huán)。例例4.13 4.13 求求100100,200200之間第一個能被之間第一個能被2121整除的整數(shù)。整除的整數(shù)。程序如下:程序如下:for n=100:200if rem(n,21)=0 continueendbreakendn4 4循環(huán)的嵌套循環(huán)的嵌套 指一個循環(huán)結構的循環(huán)體又包括一個循環(huán)結構。指一個循環(huán)結構的循環(huán)體又包括一個循環(huán)結構。例例4.14 4.14 求求1,5001,500之間的全部完數(shù)。之間的全部完數(shù)。for m=1:500s=0;for k=1:m/2if rem(m,k)=0s
36、=s+k;endendif m=s disp(m);endend例例4.15 用篩選法求某自然數(shù)范圍內的全部素數(shù)。用篩選法求某自然數(shù)范圍內的全部素數(shù)。程序如下:程序如下:m=input(m=); p=1:m; p(1)=0;for i=2:sqrt(m) for j=2*i:i:m p(j)=0; endendn=find(p=0);p(n)4.3 4.3 函數(shù)文件函數(shù)文件4.3.1 4.3.1 函數(shù)文件的基本結構函數(shù)文件的基本結構 函數(shù)文件由函數(shù)文件由functionfunction語句引導,其基本結構為:語句引導,其基本結構為: function function 輸出形參表輸出形參表=
37、=函數(shù)名函數(shù)名( (輸入形參表輸入形參表) ) 注釋說明部分注釋說明部分 函數(shù)體語句函數(shù)體語句其中以其中以functionfunction開頭的一行為引導行,表示該開頭的一行為引導行,表示該M M文件是文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當輸出形參多于一個時,則應該用方括號括起來。數(shù)。當輸出形參多于一個時,則應該用方括號括起來。 例例4.16 4.16 編寫函數(shù)文件求半徑為編寫函數(shù)文件求半徑為r r的圓的面積和周長。的圓的面積和周長。 f
38、unction s,p=fcircle(r)%CIRCLE calculate the area and perimeter of a circle of radii r%r 圓半徑圓半徑%s 圓面積圓面積%p 圓周長圓周長s=pi*r*r;p=2*pi*r;4.3.2 4.3.2 函數(shù)調用函數(shù)調用函數(shù)調用的一般格式是:函數(shù)調用的一般格式是: 輸出實參表輸出實參表=函數(shù)名函數(shù)名( (輸入實參表輸入實參表) ) 要注意的是,函數(shù)調用時各實參出現(xiàn)的順序、個數(shù),要注意的是,函數(shù)調用時各實參出現(xiàn)的順序、個數(shù),應與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯。應與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯
39、。函數(shù)調用時,先將實參傳遞給相應的形參,從而實現(xiàn)參函數(shù)調用時,先將實參傳遞給相應的形參,從而實現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。例例4.174.17函數(shù)文件函數(shù)文件tran.mtran.m:function rho,theta=tran(x,y)function rho,theta=tran(x,y)rho=sqrt(xrho=sqrt(x* *x+yx+y* *y);y);theta=atan(y/x);theta=atan(y/x);調用調用tran.mtran.m的命令文件的命令文件main1.mmain1.m:x=input(Please input x=
40、:);x=input(Please input x=:);y=input(Please input y=:);y=input(Please input y=:);rho,the=tran(x,y);rho,the=tran(x,y);rhorhothethe 在在MATLABMATLAB中,函數(shù)可以嵌套調用,即一個函數(shù)可以調用中,函數(shù)可以嵌套調用,即一個函數(shù)可以調用別的函數(shù),甚至調用它自身。一個函數(shù)調用它自身稱為函別的函數(shù),甚至調用它自身。一個函數(shù)調用它自身稱為函數(shù)的遞歸調用。數(shù)的遞歸調用。例例4.18 4.18 利用函數(shù)的遞歸調用,求利用函數(shù)的遞歸調用,求n n!。!。 n!n!本身就是以遞
41、歸的形式定義的:本身就是以遞歸的形式定義的: 顯然,求顯然,求n!n!需要求需要求(n-1)!(n-1)!,這時可采用遞歸調用。遞,這時可采用遞歸調用。遞歸調用函數(shù)文件歸調用函數(shù)文件factor.mfactor.m如下:如下: function f=factor(n)function f=factor(n) if n=1 if n=1 f=1; f=1; else else f=factor(n-1) f=factor(n-1)* *n; %n; %遞歸調用求遞歸調用求(n-1)!(n-1)! end end4.3.3 4.3.3 函數(shù)參數(shù)的可調性函數(shù)參數(shù)的可調性 在調用函數(shù)時,在調用函數(shù)時,MATLABMATLAB用兩個永久變量用兩個永久變量narginnargin和和nargoutnargout分別記錄調用該函數(shù)時的輸入實參和輸出實參分別記錄調用該函數(shù)時的輸入實參和輸出實參的個數(shù)。只要在函數(shù)文件中包含這兩個變量,就可以準的個數(shù)。只要在函數(shù)文件中包含這兩個變量,就可以準確地知道該函數(shù)文件被調用時的輸入輸出參數(shù)個數(shù),從確地知道該函數(shù)文件被調用時的輸入輸出參數(shù)個數(shù),從而決定函數(shù)如何進行處理。而決定函數(shù)如何進行處理。例例4.20 nargin4.20 nargin用法示例。用法示例。函數(shù)文件函數(shù)文件examp.mexa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保護鼻子小班健康教案反思
- 課阿拉伯帝國說課稿
- 環(huán)境污染治理分層管理辦法
- 二手房交易市場動態(tài)
- 養(yǎng)殖場客戶服務與滿意度
- 藥店設備養(yǎng)護管理辦法
- 公路聲屏障維護合同范本
- 文化產(chǎn)業(yè)招投標技術標范本
- 談判技巧培訓委托協(xié)議
- 城市供水合同談判教案
- 顱底骨折的護理查房
- 醫(yī)生類抖音代運營方案(綜合)
- 掘進自動化工作面研究及應用新的
- 99D102-1 6~10kV鐵橫擔架空絕緣線路安裝
- 如何積極應對人工智能時代帶來的各種挑戰(zhàn)800字
- 中國共產(chǎn)主義青年團團員發(fā)展過程紀實簿
- 小班《中國傳統(tǒng)節(jié)日春節(jié)》
- 綜述性論文寫作-課件
- 祛淤通脈三圣藥川芎、血竭、地龍
- 國家開放大學電大本科《理工英語4》期末題庫及答案(試卷號:1388)
- 消防安全教育培訓記錄表
評論
0/150
提交評論