matlab基礎(chǔ)matlab程序設(shè)計(jì)_第1頁(yè)
matlab基礎(chǔ)matlab程序設(shè)計(jì)_第2頁(yè)
matlab基礎(chǔ)matlab程序設(shè)計(jì)_第3頁(yè)
matlab基礎(chǔ)matlab程序設(shè)計(jì)_第4頁(yè)
matlab基礎(chǔ)matlab程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1,第5講 MATLAB程序設(shè)計(jì),尚濤,電子信息工程學(xué)院 Tel2,本講目標(biāo),掌握MATLAB的幾種基本控制轉(zhuǎn)移語(yǔ)句 學(xué)會(huì)使用M文件進(jìn)行編程 具備對(duì)復(fù)雜問(wèn)題的編程求解能力,3,主要內(nèi)容,程序設(shè)計(jì)概述 MATLAB程序結(jié)構(gòu) M文件 調(diào)試,4,.1 程序設(shè)計(jì)概述,MATLAB是第四代編程語(yǔ)言 程序簡(jiǎn)潔 可讀性很強(qiáng) 調(diào)試容易 編程效率高 易移植和維護(hù) 通過(guò)編程可求解復(fù)雜性更高或特殊的計(jì)算問(wèn)題,第一代 機(jī)器語(yǔ)言 特征:面向機(jī)器。 第二代 匯編語(yǔ)言 特征:用指令符號(hào)代替二進(jìn)制代碼 第三代 C、C+、pascal等 特征:面向過(guò)程 第四代 java,c#等 特征:面向?qū)ο?5,

2、與其他高級(jí)語(yǔ)言相比 具有語(yǔ)法相對(duì)簡(jiǎn)單、使用方便、容易調(diào)試等優(yōu)點(diǎn) 在編程工作方式下,要求具有 數(shù)據(jù)結(jié)構(gòu) 控制流 輸入輸出 面向?qū)ο?6,編制一種擴(kuò)展名為.m的MATLAB程序(簡(jiǎn)稱M文件) 編輯環(huán)境,7,.2 MATLAB程序結(jié)構(gòu),按照程序設(shè)計(jì)的觀點(diǎn), 任何算法功能都可以通過(guò)由程序模塊組成的三種基本流程控制結(jié)構(gòu)的組合來(lái)實(shí)現(xiàn): 順序結(jié)構(gòu):程序按程序語(yǔ)句或模塊在執(zhí)行流中的順序逐個(gè)執(zhí)行。 分支結(jié)構(gòu):程序按設(shè)定的條件實(shí)現(xiàn)程序執(zhí)行流的多路分支。 循環(huán)結(jié)構(gòu):程序按給定的條件重復(fù)地執(zhí)行指定的程序段或模塊。,8,5.2.1順序結(jié)構(gòu),程序模塊1,程序模塊2,MATLAB中實(shí)現(xiàn)順序結(jié)構(gòu)的方法非常簡(jiǎn)單: 只需將程序語(yǔ)

3、句順序排列即可,9,example.m文件 theta=-pi:0.01:pi; rho(1,:)=2*sin(5*theta).2; polar(theta,rho(1,:) 執(zhí)行example,10,5.2.2 分支結(jié)構(gòu),在MATLAB中,選擇結(jié)構(gòu)由兩種語(yǔ)句結(jié)構(gòu)實(shí)現(xiàn): if語(yǔ)句 switch語(yǔ)句,條件,程序模塊1,成立,不成立,程序模塊2,3.2.2 選擇結(jié)構(gòu),11,if語(yǔ)句,if表達(dá)式 程序模塊1 else 程序模塊2 end,12,if語(yǔ)句的兩種變形,(1) 單分支if語(yǔ)句:只有一個(gè)分支的選擇結(jié)構(gòu) if表達(dá)式 程序模塊 end (2) 多分支if語(yǔ)句:超過(guò)2個(gè)的選擇 if表達(dá)式1 程序

4、模塊1 elseif 表達(dá)式2 程序模塊2 elseif 表達(dá)式n 程序模塊n else 程序模塊n+1 end,13,例:將百分制的學(xué)生成績(jī)轉(zhuǎn)換為五級(jí)制的成績(jī)輸出,clear n=input(輸入n= ); if n=90 r=A elseif n=80 r=B elseif n=70 r=C elseif n=60 r=D else r=E end,運(yùn)行結(jié)果: 輸入n= 87 r = B,14,switch語(yǔ)句,switch 表達(dá)式 case 數(shù)值1 程序模塊1; case 數(shù)值2 程序模塊2; otherwise 程序模塊n end,15,例:將百分制的學(xué)生成績(jī)轉(zhuǎn)換為五級(jí)制的成績(jī)輸出使用

5、switch語(yǔ)句,clear n=input(輸入n= ); switch fix(n/10) %fix 取整 case 10,9 r=A case 8 r=B case 7 r=C case 6 r=D otherwise r=E end,運(yùn)行結(jié)果: 輸入n= 65 r = D,16,5.2.3 循環(huán)結(jié)構(gòu),在MATLAB中,循環(huán)結(jié)構(gòu)可以由兩種語(yǔ)句結(jié)構(gòu)實(shí)現(xiàn): for語(yǔ)句循環(huán)結(jié)構(gòu) while語(yǔ)句循環(huán)結(jié)構(gòu),程序模塊,不成立,成立,條件,3.2.2 選擇結(jié)構(gòu),17,for語(yǔ)句循環(huán)結(jié)構(gòu),for循環(huán)變量起始值:步長(zhǎng):終止值 循環(huán)體 end,18,例:使用for結(jié)構(gòu)計(jì)算1+2+3+100,clear su

6、m=0; for i=1:100 sum=sum+i; end sum,運(yùn)行結(jié)果: sum = 5050,19,while語(yǔ)句循環(huán)結(jié)構(gòu),while表達(dá)式 循環(huán)體 end,20,例:使用while結(jié)構(gòu)計(jì)算1+2+3+100,clear sum=0; i=0; while i100 i=i+1; sum=sum+i; end sum,運(yùn)行結(jié)果: sum = 5050,21,5.3 M文件,M文件兩種形式 命令文件(Script) 命令和函數(shù)的結(jié)合 文件運(yùn)行不需要輸入?yún)?shù)和輸出參數(shù) 按順序自動(dòng)執(zhí)行命令 函數(shù)文件(Function) 用Function聲明 可以包含輸入?yún)?shù)和輸出參數(shù) 文件運(yùn)行須給出輸

7、入?yún)?shù),自動(dòng)化,模塊化,22,5.3.1基本組成結(jié)構(gòu),說(shuō)明 定義變量 %包括全局變量的聲明及參數(shù)值的設(shè)定 逐行執(zhí)行命令 %指MATLAB提供的運(yùn)算指令或工具箱提供的專用命令 /分支/循環(huán) %包含for,if then,switch,while等語(yǔ)句 逐行執(zhí)行命令 end %表示結(jié)束,可以沒(méi)有,23,5.3.2 M文件的編輯及工作路徑的設(shè)置,進(jìn)入MATLAB的Editor/Debugger窗口來(lái)編輯程序 在編輯環(huán)境中,文字的不同顏色顯示表明不同屬性 綠色:注解; 黑色:程序主體; 紅色:屬性值的設(shè)定; 藍(lán)色:控制流程。 在運(yùn)行程序之前,必須設(shè)置好MATLAB的工作路徑。 通過(guò)cd指令在命令窗口中

8、可以更改、顯示當(dāng)前工作路徑。 通過(guò)路徑瀏覽器(path browser)可以進(jìn)行設(shè)置,24,25,5.3.3命令文件,又稱為腳本文件,是一串指令的集合。 用戶只需鍵入該命令文件的文件名,系統(tǒng)就會(huì)自動(dòng)逐行執(zhí)行該文件中的各條語(yǔ)句。 適用于小規(guī)模運(yùn)算。,26,5.3.4函數(shù)文件,函數(shù)文件基本格式: function 輸出形參列表=函數(shù)名(輸入形參列表) 注釋說(shuō)明語(yǔ)句段 程序語(yǔ)句段 end,27,函數(shù)內(nèi)容: (1)第一行幫助行,即H1行 以(%)開(kāi)頭,作為lookfor指令搜索的行 (2)函數(shù)體說(shuō)明及有關(guān)注解 以(%)開(kāi)頭,用以說(shuō)明函數(shù)的作用及有關(guān)內(nèi)容。如果不希望顯示某段信息,可在它的前面加空行 (3

9、)函數(shù)體語(yǔ)句 函數(shù)體內(nèi)使用的除返回和輸入變量這些在function語(yǔ)句中直接引用的變量以外的所有變量都是局部變量,即在該函數(shù)返回之后,這些變量會(huì)自動(dòng)在MATLAB的工作空間中清除掉。,28,函數(shù)文件,29,函數(shù)程序使用的變量,函數(shù)程序與主程序之間的數(shù)據(jù)是通過(guò)參數(shù)進(jìn)行傳遞的,函數(shù)程序應(yīng)用主程序傳遞來(lái)的參數(shù)進(jìn)行計(jì)算后,將結(jié)果返回主程序。,30,%主程序exp2_9.m a=input(please input value of a=); b=input(please input value of b=); c=sumhe(a,b) % 在此例中,主程序exp2_9.m設(shè)定了兩個(gè)參數(shù)a和b來(lái)調(diào)用 %

10、 子程序sumhe.m(為一個(gè)函數(shù)文件), % 所以執(zhí)行主程序時(shí),子程序就會(huì)調(diào)用主程序傳遞過(guò)來(lái)的 % a和b值進(jìn)行計(jì)算,再將結(jié)果返回主程序。 %子程序sumhe.m %sumhe(a,b) sum the serial of numbers from a tob function result=sumhe(a,b) result=a+b; end,31,5.4局部變量和全局變量,如果一個(gè)函數(shù)內(nèi)的變量沒(méi)有特別聲明,那么這個(gè)變量只在函數(shù)內(nèi)部使用,即為局部變量。 如果兩個(gè)或多個(gè)函數(shù)共用一個(gè)變量(或者說(shuō)在函數(shù)程序中也要用到主程序中的變量,注意不是參數(shù)),那么可以用global來(lái)將它聲明為全局變量。 全

11、局變量的使用可以減少參數(shù)傳遞,合理利用全局變量可以提高程序執(zhí)行的效率。,32,%主程序exp2_10.m global a %聲明變量a為全局變量 x=1:100; a=3; c=prods(x) %調(diào)用子程序prods.m %子程序prods.m function result=prods(x) global a result=a*sum(x); %聲明了與主程序一樣的全局變量a,以便在子程序中可以 %使用主程序中定義的變量,33,5. 5 人機(jī)交互,人機(jī)交互命令 echo on(off) 執(zhí)行命令前先顯示其內(nèi)容 pause(n) 程序執(zhí)行到此處,暫停n秒,或鍵入任意鍵后才繼續(xù)執(zhí)行 keyb

12、oard 程序執(zhí)行到此處暫停,屏幕顯示K,用戶可以做任何操作,需恢復(fù)運(yùn)行時(shí),鍵入return input(提示符) 程序執(zhí)行到此處暫停,屏幕顯示引號(hào)中的字符串,要求用戶輸入數(shù)據(jù) C 強(qiáng)行停止程序運(yùn)行,34,5.6 M文件調(diào)試,兩種類型的錯(cuò)誤 語(yǔ)法錯(cuò)誤:由用戶的錯(cuò)誤操作引起的 運(yùn)行錯(cuò)誤:算法錯(cuò)誤和程序設(shè)計(jì)錯(cuò)誤引起的,35,編輯器的編輯與調(diào)試,36,37,38,擴(kuò)展閱讀,其他流程控制語(yǔ)句 1. break語(yǔ)句 2. continue語(yǔ)句 3. return語(yǔ)句 4. try語(yǔ)句 5. echo命令 6. input命令 7. keyboard命令 8. pause命令 GUI程序設(shè)計(jì)(圖形用戶界面) MATLAB應(yīng)用程序接口(API) 提供庫(kù)函數(shù) 與C或FORTRAN語(yǔ)言混合編程,39,其他章節(jié) Simulink系統(tǒng)建模仿真分析的軟件包 線性和非線性系統(tǒng) 連續(xù)和離散時(shí)間系統(tǒng) 圖像、視頻、聲音的處理 MATLAB的綜合應(yīng)用 電路 電力系統(tǒng) 信號(hào)與系統(tǒng) 數(shù)字信號(hào)處理 圖像處理,40,本節(jié)介紹了matlab程序設(shè)計(jì)基礎(chǔ)知識(shí) ,通過(guò)學(xué)習(xí)應(yīng)該掌握: M文件的編寫方法 M文件的調(diào)試方法,小 結(jié),41,上機(jī)指導(dǎo),M文件的調(diào)試,42,Task(1),使用M文件編輯函數(shù)文件。,43,Task(2),求1!+2!+3!+ +5!的值 clear sum=0; for i=1:5 pdr=1;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論