三章MATLAB程序設計課件_第1頁
三章MATLAB程序設計課件_第2頁
三章MATLAB程序設計課件_第3頁
三章MATLAB程序設計課件_第4頁
三章MATLAB程序設計課件_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

3.1.3函數(shù)式M文件(1)函數(shù)文件的基本結構function[輸出參量1,輸出參量2]=函數(shù)名(輸入?yún)⒘?,輸入?yún)⒘?)%注釋說明部分函數(shù)體語句其中以function開頭的一行為引導行,表示該M文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。當輸入?yún)⒘慷嘤谝粋€時,則應該用小括號括起來。當輸出參量多于一個時,則應該用方括號括起來。89函數(shù)式M文件一般都要自帶參數(shù),并且有返回結果。函數(shù)式M文件中的變量都不是全局變量,僅存在函數(shù)本身的工作空間不會與MATLAB基本工作空間(BaseWorkplace)的全局變量重復。函數(shù)運行完畢之后,它所定義的變量將從工作區(qū)間中清除。類似于一個黑箱。因此除了輸入變量外,運行過程所需其他變量須自行設定,不推薦在函數(shù)文件中使用全局變量,以利于程序的模塊化。10(2)函數(shù)調用在命令窗口,函數(shù)調用的一般格式是:

[輸出參量表]=函數(shù)名(輸入?yún)⒘勘?函數(shù)調用時輸入?yún)⒘砍霈F(xiàn)的順序、個數(shù)和類型,應與函數(shù)定義一致,參量名字可以不同,否則會出錯。輸出參量可以少于規(guī)定的個數(shù),但絕不能多于。在MATLAB中,函數(shù)可以嵌套調用,即一個函數(shù)可以調用別的函數(shù),甚至調用它自身。調用的函數(shù)必須在MATLAB搜索路徑范圍內,一般把它們放在同一個文件夾內。113.2M文件的流控制語句

順序結構

選擇結構(if,switch)循環(huán)結構(for,while)其他流控制語句(continue,break,return,echo,input,keyboard,pause…)123.2.1順序結構

順序結構是最簡單的程序結構,用戶在編寫好程序之后,系統(tǒng)將按照程序的物理位置順次執(zhí)行。

例如

a=1;

b=2;

c=3;

s1=a+b;

s2=s1+c;

s3=s2/s2;

133.2.2選擇結構1.if語句在MATLAB中,if語句有3種格式。

(1)單分支if語句:

if條件語句組

end當條件成立時,則執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行if語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。14(2)雙分支if語句:if條件語句組1else

語句組2end

當條件成立時,執(zhí)行語句組1,否則執(zhí)行語句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行if語句的后繼語句。15例

計算分段函數(shù)的值

x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/sqrt(2);elsey=(log10(x)+sqrt(1+x*x))/2;endy16

(3)多分支if語句:if條件1

語句組1elseif條件2

語句組2……elseif條件m

語句組melse其它情況

語句組nend語句用于實現(xiàn)多分支選擇結構。172.switch語句

switch語句根據(jù)表達式的取值不同,分別執(zhí)行不同的語句,其語句格式為:

switch表達式

case表達式1

語句組1case表達式2

語句組2……case表達式m

語句組motherwise

語句組nend18例

選擇不同顏色繪制[-2π2π]區(qū)間正弦曲線

t=[-2*pi:pi/10:2*pi];y=sin(t);colour=input(‘請輸入你要選擇的顏色','s');switchcolourcase'red'plot(t,y,'r');case'blue'plot(t,y,'b');otherwise%其他情況一律用黑色

plot(t,y,’k’)end

193.2.3循環(huán)結構1.for語句

For語句是一種循環(huán)語句,可以讓用戶很方地實現(xiàn)循環(huán)操作,從而可以從容地應付大規(guī)模的循環(huán)語句。(1)單循環(huán)for循環(huán)變量=初值:步長:終值循環(huán)體語句

end

20計算1+2+3+4+5結果為m=15for語句更一般的格式為:

for循環(huán)變量=矩陣表達式循環(huán)體語句

end

執(zhí)行過程是依次將矩陣的各行元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各行元素處理完畢。22

例s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;ends‘

運行結果:3948576623

在實際MATLAB編程中,采用循環(huán)語句會降低其執(zhí)行速度,應盡可能采用矩陣運算。24>>b=sum(a,2)b=394857662.while語句與for循環(huán)不同,while循環(huán)的判斷控制可以是邏輯判斷語句,因此,它的循環(huán)次數(shù)可以是一個不定數(shù)。這樣就賦予了它比for循環(huán)更廣泛的用途。

while(條件)

循環(huán)體語句

end

其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。25例:從0到100累加,當和大于500時候停止。26n=1;y=0;whiley<=500y=y+n;n=n+1;endny3.2.4其他流控制語句與循環(huán)結構相關的語句還有break語句和continue語句。它們一般與if語句配合使用。break語句用于終止循環(huán)的執(zhí)行。當在循環(huán)體內執(zhí)行到該語句時,程序將跳出循環(huán),繼續(xù)執(zhí)行循環(huán)語句后面的語句。(2)continue語句控制跳過循環(huán)體中的某些語句。當在循環(huán)體內執(zhí)行到該語句時,程序將跳過循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。27例

求[100,200]之間第一個能被21整除的整數(shù)。程序如下:forn=100:200ifrem(n,21)~=0

continueend

breakendn不能被21整除能被21整除結束for循環(huán)28(3)echoon(off)語句執(zhí)行每行程序前顯示器內容。(4)pause(n)語句執(zhí)行到此處停留n秒,如果沒有括號參數(shù)則須用戶點擊任意鍵繼續(xù)。(5)keyboard語句停止執(zhí)行并將控制權交給鍵盤,在屏幕上顯示K>>。對程序調控和程序運行中修改變量非常方便。當鍵入return是恢復原來程序的運行。29(6)Input語句用來提示用戶輸入數(shù)據(jù)或字符串,并接受輸入值。A=input(‘promt’)%在屏幕顯示prompt,并將輸入數(shù)值付與變量AB=input(‘prompt’,’s’)’)%在屏幕顯示prompt,并將輸入字符付與字符串變量B(7)menu語句menu(‘說明’,’選項1’,’選項2’…)(8)Ctrl+C或者Ctrl+break強行停止程序運行。30313.3程序的調試(debug)在MATLAB的表達式中可能存在兩種類型的錯誤,即語法錯誤和運行錯誤

3.3.1語法錯誤

例如:變量名或者函數(shù)名的誤寫,標點符號的缺漏和控制語句end的缺漏等,此類錯誤MATLAB運行時一般能發(fā)現(xiàn)并報錯。易于更正。Editor中語法錯誤會在后面出現(xiàn)淺色的橫杠,鼠標放在上面會給出錯誤的具體內容,點擊“Fix”會修正語法錯誤。顯示所有的錯誤3.3.2邏輯錯誤的識別和程序調試

1、邏輯錯誤,例如算法本身問題或者對MATLAB指令的使用不當,在程序運行過程中,出現(xiàn)溢出或是死循環(huán)等異?,F(xiàn)象。

35(1)直接調試法

對于簡單的問題,使用下面的一種或幾種方法可以方便地求解:在函數(shù)文件頭前加“%”,并定義輸入變量的值,這樣就將函數(shù)式M文件變?yōu)槟_本式M文件,而腳本式M文件運行時,其工作區(qū)間就是MATLAB的工作區(qū)間,這樣在出現(xiàn)錯誤的時候就可以查詢這個工作區(qū)間。最好在腳本文件頭兩行輸入“clear;clc;”創(chuàng)造良好的運行環(huán)境。將程序中輸出關鍵值的行的分號(;)去掉,這樣,這些運算的中間結果將在命令窗口中予以顯示,用戶可以據(jù)此來檢查中間結果的正確性。注意矩陣運算與矩陣元素運算的區(qū)別“*、.*、/、./”。養(yǎng)成每行加注釋的良好習慣,以利于程序的調試和可讀性(2)工具調試法36

點擊圖標或者直接在點擊行號與文本之間的橫杠設置一個斷點,編譯器用一個大紅點標記。程序運行后將在斷點處暫停,并出現(xiàn)一個綠色箭此時命令窗口的提示符由“>>”變?yōu)椤癒>>”,用戶可以查看前面的運行結果。

點擊圖標運行下一行語句,綠色箭頭向下移動一位。點擊

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論