精通matlab混合編程教程含及源代碼章基礎(chǔ)_第1頁
精通matlab混合編程教程含及源代碼章基礎(chǔ)_第2頁
精通matlab混合編程教程含及源代碼章基礎(chǔ)_第3頁
精通matlab混合編程教程含及源代碼章基礎(chǔ)_第4頁
精通matlab混合編程教程含及源代碼章基礎(chǔ)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章MATLAB編程基礎(chǔ)MATLAB是一種數(shù)據(jù)可視化軟件,同時(shí)也是一種編程語言。MATLAB提供了豐富的方法和手段來解決工程、科學(xué)、計(jì)算和數(shù)學(xué)等學(xué)科中的理論和應(yīng)用方面的問題,這些方法和手段都是通過MATLAB編程語言實(shí)現(xiàn)的。本章將簡單介紹MATLAB的編程基礎(chǔ),包括程序流程控制、函數(shù)使用、程序調(diào)試等方面,從而使讀者可以快速掌握MATLAB的基本編程要領(lǐng)。3.1MATLAB程序流程控制MATLAB與其他計(jì)算機(jī)語言一樣,允許用戶采用決策結(jié)構(gòu)控制命令來執(zhí)行流程的控制。流程控制的功能非常強(qiáng)大,它能夠通過各種循環(huán)和迭代的方法使多個(gè)數(shù)據(jù)產(chǎn)生相互影響,從而實(shí)現(xiàn)用戶的運(yùn)算目的。本節(jié)將介紹MATLAB的流程控制結(jié)構(gòu)。3.1.1順序結(jié)構(gòu)MATLAB的編程語言本質(zhì)上是一種解釋性的語言,用戶可以直接在MATLAB的命令提示符下輸入語句執(zhí)行,也可以編寫各種應(yīng)用程序,然后回到MATLAB環(huán)境中進(jìn)行編譯執(zhí)行,最后輸出處理結(jié)果。MATLAB流程控制中,在不包含其他流程控制結(jié)構(gòu)語句時(shí),MATLAB默認(rèn)按順序執(zhí)行。3.1.2循環(huán)結(jié)構(gòu)MATLAB的循環(huán)結(jié)構(gòu)主要有for循環(huán)和while循環(huán)兩種形式。這兩種循環(huán)語句的使用使得MATLAB能夠用簡單的語句處理復(fù)雜迭代算法。3.1.3選擇結(jié)構(gòu)選擇語句又叫多重條件轉(zhuǎn)移語句,MATLAB中通過switch…case語句來實(shí)現(xiàn),它的基本組成結(jié)構(gòu)的語法格式為:switch條件表達(dá)式

case常量1

語句組1case{常量1,常量2}

語句組2……otherwise

語句組n+1end3.1.4分支語句分支結(jié)構(gòu)又叫條件轉(zhuǎn)移結(jié)構(gòu),即按照一定的條件選擇執(zhí)行一定的語句。MATLAB提供的分支結(jié)構(gòu)語句結(jié)果叫做if-else-end條件轉(zhuǎn)移語句,它有三種常見的組成結(jié)構(gòu)。3.1.5其它控制語句break語句是MATLAB提供的另一種常用的控制語句,其作用是用于終止正在執(zhí)行的for循環(huán)語句和while循環(huán)語句,以跳出循環(huán)體,結(jié)束計(jì)算過程。在循環(huán)結(jié)構(gòu)的嵌套中,break語句僅僅只能跳出該語句所在的循環(huán)體語句,并不能跳出高層的循環(huán)體。3.2函數(shù)句柄在MATLAB中,函數(shù)接受用戶的輸入?yún)?shù),再通過計(jì)算將函數(shù)結(jié)果返回給用戶。很多情況下,用戶則需要將一個(gè)函數(shù)的標(biāo)識(shí)作為一個(gè)參數(shù)傳遞給另一個(gè)函數(shù),傳遞過程可以通過函數(shù)句柄實(shí)現(xiàn)。3.2.1創(chuàng)建和查看函數(shù)句柄函數(shù)句柄類似于C語言中的指針,包含了函數(shù)的路徑、函數(shù)名、類型以及可能存在的重載方法。函數(shù)句柄必須通過專門的定義創(chuàng)建的,而一般的圖像的句柄是自動(dòng)建立的。MATLAB7.X中提供了函數(shù)句柄工具。使用函數(shù)句柄不僅能夠提高運(yùn)行速度,而且能夠使用起來能夠像使用變量一樣方便。3.2.2使用函數(shù)句柄函數(shù)句柄的使用方法和函數(shù)的使用方法一樣,可以用feval命令使用,語法格式為,z=feval(funname,inputpara)其中,funname為函數(shù)名,inputpara為輸入?yún)?shù)。

3.3變量的檢測(cè)和限權(quán)使用函數(shù)MATLAB與其他編程語言不同在于,MATLAB中數(shù)據(jù)處理更加有效,因?yàn)镸ATLAB提供了強(qiáng)大的變量檢測(cè)和限權(quán)使用函數(shù),使得變量從定義到傳遞、引用等多方面都變得更加高效、方便。本節(jié)將簡要介紹MATLAB中幾種特殊的變量定義/傳遞方式。3.3.1輸入輸出變量檢測(cè)指令輸入輸出變量檢測(cè)指令用于輸入、輸出“變長度”時(shí)使用。3.3.2跨空間變量傳遞在MATLAB函數(shù)運(yùn)行中,避免不了在多個(gè)子函數(shù)中應(yīng)用同一組數(shù)值的情況,并且這些數(shù)值的變化對(duì)引用它的函數(shù)產(chǎn)生相應(yīng)的影響時(shí),就要求系統(tǒng)能夠跨空間傳遞變量。MATLAB提供了可跨空間變量傳遞指令,跨空間賦值指令的語法格式為,assignin%跨空間賦值指令3.3.3子函數(shù)和私用函數(shù)在MATLAB中,一個(gè)M文件函數(shù)中只包含一個(gè)主函數(shù),但是可以包含多個(gè)子函數(shù),這樣的子函數(shù)只能專屬與這一個(gè)M函數(shù)文件,故又稱之為私用函數(shù)3.4串(表達(dá)式)演算函數(shù)串演算函數(shù)是用來執(zhí)行字符串所代表的函數(shù),其優(yōu)點(diǎn)在于可以在函數(shù)運(yùn)行中修改所執(zhí)行的指令和參數(shù),提高計(jì)算的靈活性。MATLAB提供了兩種演算函數(shù):一種是“串演算函數(shù)”eval,它具有對(duì)字符串表達(dá)式進(jìn)行計(jì)算的能力;另一種是“函數(shù)句柄演算函數(shù)”feval,它具有對(duì)函數(shù)句柄進(jìn)行操作的能力。本節(jié)將介紹EVAL和FEVAL這兩個(gè)串演算函數(shù)指令。3.4.1EVALEVAL指令的基本語法結(jié)構(gòu)包括以下兩種格式:(1)執(zhí)行指定的運(yùn)算。y=eval(expression)其中,參數(shù)expression為指定的運(yùn)算(2)調(diào)用函數(shù)文件,輸出計(jì)算結(jié)果。

[a1,a2,a3,...]=eval('myfun(b1,b2,b3,...)')執(zhí)行帶有輸入變量b1,b2,b3,...的函數(shù)myfun。返回結(jié)果在輸出變量a1,a2,a3,...中。3.4.2FEVALFEVAL指令的基本語法格式為:[y1,y2,…]=feval(‘FUN’,arg1,arg2,…)其中,參數(shù)FUN為函數(shù)名,arg1,arg2,…分別為輸入?yún)?shù),y1,y2,…存儲(chǔ)計(jì)算結(jié)果。FUN字符串僅為函數(shù)名,輸入?yún)?shù)由arg1,arg2,…給出。3.5MATLAB面向?qū)ο缶幊蘉ATLAB與C++等其他面向?qū)ο缶幊陶Z言一樣,可以基于類的概念實(shí)現(xiàn)面向?qū)ο缶幊?,MATLAB中提供了多種面向類編程的方法和操作,本節(jié)將簡要介紹MATLAB的類的屬性,以及與面向?qū)ο缶幊痰牟僮鞣椒ā?.5.1MATLAB中的類MATLAB提供了許多基本的數(shù)據(jù)類型,這些數(shù)據(jù)類型又被稱之為類。類的定義和C/C++語言中相似,例如所有雙精度數(shù)字或者數(shù)組就是被稱之為’double’的類,同理,在編程中應(yīng)用到的字符型數(shù)據(jù)或數(shù)組則被稱之為’char’的類。在MATLAB中,包含多種常用的數(shù)據(jù)類型或類:double、char、logical、struct和cell類,還包含一些不常用到的類,如function、handle、inline、Java、single等??梢酝ㄟ^class指令來查看某個(gè)數(shù)字的類。3.5.2具有類屬性的數(shù)據(jù)類是一種數(shù)據(jù)類型,與普通的數(shù)據(jù)類型不同的是,類不僅包含數(shù)據(jù),還包含對(duì)數(shù)據(jù)的操作。類把數(shù)據(jù)和數(shù)據(jù)操作方法封裝在一起,作為一個(gè)整體參與程序的運(yùn)行。類具有可繼承性,創(chuàng)建一個(gè)新的類的時(shí)候,可以在一個(gè)基類中添加成員派生出新類。類的變量和類的實(shí)例是不同的,類的實(shí)例是動(dòng)態(tài)分配的內(nèi)存區(qū)域,通常稱類的實(shí)例為“對(duì)象”,同一個(gè)類可以有不同的實(shí)例存在,它們各自有自己的數(shù)據(jù),但是數(shù)據(jù)操作方法是相同的。類的變量可以看作是一個(gè)指針,指向類的實(shí)例。3.5.3實(shí)現(xiàn)帶類方法的操作

類包含不同類型的方法和操作,每一個(gè)方法能夠?qū)崿F(xiàn)不同的目的,每一個(gè)的定義也不相同。下面簡要介紹帶類方法的幾種操作。3.6MATLAB的數(shù)據(jù)類型MATLAB最強(qiáng)大的功能便是對(duì)數(shù)據(jù)的計(jì)算與處理,要想合理的處理好數(shù)據(jù),必須對(duì)數(shù)據(jù)的類型進(jìn)行合理的區(qū)分,MATLAB與C語言一樣,對(duì)數(shù)據(jù)進(jìn)行了分類。3.6.1變量與常量1.變量變量是MATLAB處理數(shù)據(jù)的核心,與其他編程語言一樣,MATLAB也有自己的一套變量命名規(guī)則。在MATLAB中,變量必須是一個(gè)單詞,不能包含空格2.常量在MATLAB中,常量的定義同C語言一樣,如31、0、-9為整形常量,2.5、-0.32為實(shí)型常量,'a'、'A'為字符常量。3.6.2數(shù)字變量的運(yùn)算及顯示格式MATLAB為數(shù)字運(yùn)算提供了大量的豐富的運(yùn)算符,包括算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算以及一些特殊的運(yùn)算。3.6.3字符串MATLAB和C語言一樣同樣可以使用字符串常量,只是有所不同的是,MATLAB中的字符串常量和字符常量一樣都是用單引號(hào)括起來表示,并且在字符串中可以插入數(shù)型常量或變量3.7M腳本文件和M函數(shù)文件MATLAB程序文件也稱之為M文件,其后綴名為.m。M文件可以分為M腳本文件和M函數(shù)文件,兩者間存在著很大的差別。本節(jié)將首先介紹M文件的一般結(jié)構(gòu),然后再分別介紹M腳本文件和M函數(shù)文件,同時(shí)介紹M文件中常用的全局變量和局部變量的問題。3.7.1M文件的一般結(jié)構(gòu)M文件是MATLAB提供的一種可以其中編寫復(fù)雜程序代碼的文本文件,該文件允許用戶將所編寫的全部程序書寫其中,執(zhí)行時(shí)只需用戶在MATLAB的命令窗口中打開該M文件,則其中的所有的命令都將依次執(zhí)行,其結(jié)果和在命令窗口中直接輸入命令一樣。3.7.2M腳本文件M腳本文件因?yàn)闆]有輸入、輸出變量,所以可以認(rèn)為是簡單的M文件。3.7.3M函數(shù)文件M函數(shù)文件比M腳本文件就相當(dāng)復(fù)雜得多。不僅有固定的程序結(jié)構(gòu),而且還涉及到輸入、輸出變量的傳遞。3.7.4局部變量和全局變量在MATLAB運(yùn)行時(shí),由于函數(shù)文件的調(diào)用可以產(chǎn)生一些中間變量,這些中間變量有的僅僅只在當(dāng)前所調(diào)用的函數(shù)中起作用,有的則在整個(gè)M文件的運(yùn)行過程中都會(huì)使用,所以這就使得變量有局部變量和全局變量之分。3.8MATLAB程序的調(diào)試和優(yōu)化在MATLAB的程序調(diào)試過程中,不僅僅要求使程序能夠滿足設(shè)計(jì)者的設(shè)計(jì)需求,而且還要求程序調(diào)試能夠優(yōu)化程序的性能,這樣使得程序調(diào)試有時(shí)比程序設(shè)計(jì)更為復(fù)雜。MATLAB提供了強(qiáng)大的程序調(diào)試功能,合理的運(yùn)用MATLAB提供的程序調(diào)試工具便顯得尤其重要。本節(jié)從MATLAB程序調(diào)試的方法和過程開始介紹,先讓用戶懂得合理運(yùn)用MATLAB的程序調(diào)試功能,再總結(jié)MATLAB程序優(yōu)化的方法,從而達(dá)到實(shí)現(xiàn)提高程序性能的目的。3.8.1MATLAB程序調(diào)試方法和過程MATLAB是一種解釋和執(zhí)行同時(shí)進(jìn)行的語言,這使得程序的調(diào)試變得相對(duì)便利,尤其是MATLAB具有良好的所見即所得特性。在MATLAB程序調(diào)試過程中,可運(yùn)用的除了一系列調(diào)試函數(shù)外,MAT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論