MATLAB圖像處理實(shí)例詳解第2章MATLAB基礎(chǔ)課件_第1頁(yè)
MATLAB圖像處理實(shí)例詳解第2章MATLAB基礎(chǔ)課件_第2頁(yè)
MATLAB圖像處理實(shí)例詳解第2章MATLAB基礎(chǔ)課件_第3頁(yè)
MATLAB圖像處理實(shí)例詳解第2章MATLAB基礎(chǔ)課件_第4頁(yè)
MATLAB圖像處理實(shí)例詳解第2章MATLAB基礎(chǔ)課件_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 MATLAB基礎(chǔ)MATLAB是當(dāng)今最強(qiáng)大的一款科技應(yīng)用軟件之一。其它高級(jí)語言相比,MATLAB程序編寫簡(jiǎn)單,計(jì)算高效,提供大量的專業(yè)工具箱以便專業(yè)應(yīng)用。本章主要介紹MATLAB的基礎(chǔ),包括MATLAB簡(jiǎn)介、MATLAB的數(shù)據(jù)類型、MATLAB的運(yùn)算符、MATLAB的矩陣、MATLAB控制語句、MATLAB的m文件和MATLAB圖形可視化。2.1 MATLAB簡(jiǎn)介MATLAB是一款由MathWorks公司開發(fā)的程序設(shè)計(jì)環(huán)境,主要用于算法開發(fā)、數(shù)據(jù)分析、可視化和數(shù)值計(jì)算。MATLAB官方網(wǎng)站為,中國(guó)網(wǎng)站為:。MATLAB擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語言(如C、Fortran)的編輯模式,將數(shù)

2、值分析、矩陣計(jì)算、數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案。MATLAB有大量的用于不同專業(yè)領(lǐng)域的工具箱,包括信號(hào)和圖像處理、通訊、控制系統(tǒng)設(shè)計(jì)、測(cè)試和測(cè)量、財(cái)務(wù)建模和分析以及計(jì)算生物學(xué)等,能夠解決多種專業(yè)應(yīng)用領(lǐng)域內(nèi)的問題。本小節(jié)主要介紹MATLAB運(yùn)行環(huán)境、工作界面、常用命令和幫助系統(tǒng)。2.1.1 MATLAB發(fā)展史MATLAB名字由MATrix和 LABoratory 兩詞的前三個(gè)字母組合而成。20世紀(jì)七十年代,時(shí)任美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任的Cleve M

3、oler出于減輕學(xué)生編程負(fù)擔(dān)的動(dòng)機(jī),為學(xué)生設(shè)計(jì)了一組調(diào)用LINPACK和EISPACK矩陣軟件工具包庫(kù)程序的的“通俗易用”的接口,此即用FORTRAN編寫的萌芽狀態(tài)的MATLAB。2.1.2 MATLABR2010a新功能和特點(diǎn)本書主要介紹MATLAB7.10版本,即MATLABR2010a,由Mathworks公司2010年上半年發(fā)布。該版本增加了一些新的功能。在MATLAB的命令行窗口輸入命令whatsnew,在MATLAB的幫助系統(tǒng)中會(huì)顯示MATLABR2010a的新功能。2.1.3 MATLAB運(yùn)行環(huán)境MATLAB可以在多種類型計(jì)算機(jī)上運(yùn)行,例如:PC兼容機(jī)、Macintosh機(jī)或UN

4、IX工作站等。本書只針對(duì)PC兼容機(jī)上Microsoft Windows操作系統(tǒng)給予介紹。1系統(tǒng)要求2MATLAB的啟動(dòng)和退出2.1.5 MATLAB的常用命令MATLAB中除了用窗口和菜單欄設(shè)置操作外,還提供了一些常用命令在命令窗口中同樣可以進(jìn)行設(shè)置操作。MATLAB窗口常用命令,如表2.1所示。2.1.6 MATLAB的幫助系統(tǒng)MATLAB為用戶提供了強(qiáng)大的幫助系統(tǒng),其中包括產(chǎn)品幫助,函數(shù)幫助,網(wǎng)絡(luò)資源幫助和演示等。單擊菜單欄“Help”|“Product Help”項(xiàng)可以打開MATLAB幫助窗口,如圖2.6所示。界面中的“Contents”標(biāo)簽頁(yè)羅列了所有產(chǎn)品幫助文檔的目錄,單擊這些目錄以

5、及目錄下面的文章標(biāo)題,就可以在右邊的窗體中具體瀏覽幫助信息。用戶也可以在“Search”欄內(nèi)鍵入關(guān)鍵字全文搜索,搜索結(jié)果在“Search Results”標(biāo)簽頁(yè)中顯示。 圖2.6 MATLAB幫助窗口2.2.1數(shù)值類型卓越的數(shù)值運(yùn)算能力是MATLAB優(yōu)于其它高級(jí)程序語言的最大特點(diǎn)。與多數(shù)計(jì)算機(jī)高級(jí)語言一樣MATLAB基本數(shù)值類型包括浮點(diǎn)型和整數(shù)型和一些特殊數(shù)值,程序默認(rèn)的雙精度浮點(diǎn)型數(shù)值使計(jì)算結(jié)果保證較高的精度。2.2.2字符與字符串MATLAB中經(jīng)常會(huì)對(duì)字符或是字符串的操作。字符串就是一維字符數(shù)組,可以通過它的下標(biāo)對(duì)字符串中的任何一個(gè)字符進(jìn)行訪問。字符數(shù)組中存放的并非是字符本身而是字符的AS

6、CII碼。 MATLAB的字符串處理功能非常強(qiáng)大,提供了許多字符或字符串處理函數(shù),包括字符串的創(chuàng)建、字符串的屬性、比較、查找以及字符串的轉(zhuǎn)換和執(zhí)行等。MATLAB中常用的字符串操作函數(shù),如表2.8所示。2.2.3邏輯類型 MATLAB用“1”和“0”分別代表“邏輯真”和“邏輯假”,但在運(yùn)算過程中將所有非0值看作邏輯真,將0看作邏輯假。和一般的數(shù)據(jù)類型不同,邏輯類型數(shù)值只能通過數(shù)值類型轉(zhuǎn)換,或者使用特殊的函數(shù)生成邏輯數(shù)組或矩陣。MATLAB不但提供給用戶比較齊全的算術(shù)運(yùn)算符,同樣也支持關(guān)系運(yùn)算和邏輯運(yùn)算。關(guān)系運(yùn)算和邏輯運(yùn)算主要是為用戶解決程序設(shè)計(jì)中的“真”、“假”問題,在使用流程控制語句的時(shí)候,

7、用戶常常需要使用這邏輯類型值作為控制語句的判斷條件。2.2.5結(jié)構(gòu)類型MATLAB與其它高級(jí)語言一樣具有結(jié)構(gòu)類型的數(shù)據(jù)。結(jié)構(gòu)類型是包含一組彼此相關(guān)、數(shù)據(jù)結(jié)構(gòu)相同但類型不同的數(shù)據(jù)類型。結(jié)構(gòu)類型的變量可以是任意一種MATLAB數(shù)據(jù)類型的變量,也可以是一維的、二維的或者多維的數(shù)組。不過在訪問結(jié)構(gòu)類型數(shù)據(jù)的元素時(shí),需要使用下標(biāo)配合字段的形式。2.2.6細(xì)胞數(shù)組類型細(xì)胞數(shù)組是MATLAB特有的一種數(shù)據(jù)類型,組成它的元素是細(xì)胞,細(xì)胞是用來存儲(chǔ)不同類型數(shù)據(jù)的單元,如圖2.8所示22細(xì)胞數(shù)組結(jié)構(gòu)圖。細(xì)胞數(shù)組中每個(gè)細(xì)胞存儲(chǔ)一種類型的MATLAB數(shù)組,此數(shù)組中的數(shù)據(jù)可以是任何一種MATLAB數(shù)據(jù)類型或用戶自定義的

8、類型,其大小也可以是任意的。相同的數(shù)組的第二個(gè)細(xì)胞的類型與大小可以和第一個(gè)細(xì)胞完全不同。圖2.8 細(xì)胞數(shù)組結(jié)構(gòu)圖2.3.2關(guān)系運(yùn)算符MATLAB關(guān)系運(yùn)算符如表2.13所示。關(guān)系運(yùn)算符兩側(cè)的矩陣維數(shù)必須相同,關(guān)系運(yùn)算是對(duì)矩陣內(nèi)元素運(yùn)算,如果參與運(yùn)算的元素使關(guān)系運(yùn)算式為真返回值為邏輯1,反之返回值為邏輯0。標(biāo)量與矩陣進(jìn)行關(guān)系運(yùn)算時(shí),是將標(biāo)量與矩陣內(nèi)每一個(gè)元素進(jìn)行運(yùn)算。2.3.3邏輯運(yùn)算符MATLAB提供三種類型的邏輯運(yùn)算:邏輯矩陣的元素運(yùn)算;整型數(shù)據(jù)或數(shù)組的按位運(yùn)算;短路運(yùn)算。MATLAB編程時(shí)可以用除了位運(yùn)算以外的邏輯運(yùn)算的返回值作邏輯索引。參與矩陣元素邏輯運(yùn)算的邏輯矩陣必須是維數(shù)相同的矩陣,如

9、果邏輯運(yùn)算符的一側(cè)為標(biāo)量,則是標(biāo)量和邏輯矩陣的每一個(gè)元素進(jìn)行邏輯運(yùn)算。邏輯運(yùn)算符有:與運(yùn)算“&”、或運(yùn)算“|”、非運(yùn)算“”和異或“xor”。MATLAB也提供了與邏輯運(yùn)算符對(duì)應(yīng)的函數(shù)來完成邏輯運(yùn)算,如表2.14所示。2.3.4運(yùn)算優(yōu)先級(jí) MATLAB表達(dá)式可以使用的任何組合運(yùn)算、關(guān)系和邏輯運(yùn)算符。優(yōu)先級(jí)別確定MATLAB表達(dá)式的運(yùn)算順序。如果兩個(gè)運(yùn)算符的優(yōu)先級(jí)相同從左向右運(yùn)算。MATLAB的運(yùn)算符的優(yōu)先級(jí)從最高到最低如下:括號(hào)運(yùn)算;轉(zhuǎn)置運(yùn)算,冪運(yùn)算,復(fù)數(shù)共軛轉(zhuǎn)置運(yùn)算,矩陣冪運(yùn)算;正號(hào),負(fù)號(hào),邏輯非運(yùn)算;點(diǎn)乘法,點(diǎn)除法,矩陣乘法、矩陣除法;加法,減法;冒號(hào)運(yùn)算;小于,小于等于,大于,大于等于,恒

10、等于,不等于;邏輯與;邏輯或;短路邏輯與;短路邏輯或。2.4 MATLAB的矩陣矩陣式MATLAB中最基本的數(shù)據(jù)結(jié)構(gòu),用戶開始定義一個(gè)變量時(shí),首先想到的就是定義一個(gè)矩陣,用一個(gè)矩陣可以表示多種數(shù)據(jù)結(jié)構(gòu),當(dāng)矩陣是1 1維時(shí),它表示一個(gè)標(biāo)量,當(dāng)矩陣只有一行或只有一列,它表示一個(gè)向量。一個(gè)二維矩陣能夠存儲(chǔ)多種數(shù)據(jù)元素,這些數(shù)據(jù)元素可以是,字?jǐn)?shù)值類型,字符串,邏輯類型或者其它MATLAB結(jié)構(gòu)類型。MATLAB為矩陣提供多種運(yùn)算,這些運(yùn)算可以提高M(jìn)ATLAB的運(yùn)算效率。本小節(jié)主要介紹如何建立一個(gè)矩陣,矩陣的操作有哪些,還要介紹一些MATLAB中常用的與矩陣相關(guān)的函數(shù)。2.4.1矩陣的建立最簡(jiǎn)單的在MAT

11、LAB中建立一個(gè)矩陣是使用矩陣構(gòu)造函數(shù)算子“ ”。創(chuàng)建一個(gè)行矩陣用逗號(hào)或空格來分隔每一個(gè)元素,其代碼如下:row = E1, E2, ., Em row = E1 E2 . Em2.4.2矩陣的操作1矩陣的合并將兩個(gè)或多個(gè)矩陣合并成一個(gè)新的矩陣稱為矩陣的合并。“ ” 不僅是矩陣構(gòu)造算子也是MATLAB連接操作符。表達(dá)式C=A B表示橫向合并矩陣A和B,表達(dá)式C=A;B表示縱向合并舉證A和B。在矩陣合并操作時(shí),橫向合并的矩陣要求保證行數(shù)相同,縱向合并時(shí)要求保證列數(shù)相同。2. 拆分的矩陣MATLAB支持從原有矩陣中拆分出若干行或若干列組成新矩陣,這種矩陣的拆分實(shí)質(zhì)是元素的提取。2.5 MATLAB

12、控制語句MATLAB作為一種高級(jí)程序設(shè)計(jì)語言,提供了經(jīng)典的循環(huán)結(jié)構(gòu)(for循環(huán)和while循環(huán))、選擇結(jié)構(gòu)(if)和流程控制語句。用戶可以應(yīng)用這些流程控制語句編寫MATLAB程序,實(shí)現(xiàn)多種功能。2.5.1循環(huán)結(jié)構(gòu)MATLAB的循環(huán)結(jié)構(gòu)由for語句和while語句實(shí)現(xiàn),兩種語句在應(yīng)用時(shí)各有側(cè)重,for用于已知循環(huán)的次數(shù)的循環(huán),while語句用于未知循環(huán)次數(shù)的循環(huán)。循環(huán)結(jié)構(gòu)的作用是在滿足條件下重復(fù)執(zhí)行語句體。2.5.3程序流程控制 MATLAB除了之前介紹的兩種結(jié)構(gòu)語句外,還有一些可以影響程序的流程語句的,稱為程序流控制語句:break 語句,可以從本次循環(huán)中跳出循環(huán)體,執(zhí)行結(jié)束語句end 的下一

13、條語句。return 語句,終止被調(diào)用函數(shù)的運(yùn)行,返回到調(diào)用函數(shù)。pause 語句,其調(diào)用格式為pause:暫停程序運(yùn)行,按任意鍵繼續(xù);調(diào)用格式為pause(n):程序暫停運(yùn)行n 秒后繼續(xù);調(diào)用格式為pause on/off:允許/禁止其后的程序暫停。continue 語句,可以結(jié)束本次循環(huán),將跳過其后的循環(huán)體語句,進(jìn)行下一次循環(huán)。2.6 MATLAB的m文件MATLAB作為一種高級(jí)程序設(shè)計(jì)語言,除了提供一個(gè)交互式的計(jì)算機(jī)環(huán)境外,還提供了強(qiáng)大的計(jì)算機(jī)程序語言,MATLAB語言編寫的程序以.m擴(kuò)展名存為m文件。用戶可以在MATLAB在命令窗口下操作,每次每個(gè)命令行輸入一條命令;也可以寫一系列命令

14、到一個(gè)m文件中,應(yīng)用MATLAB 自帶文件編譯器創(chuàng)建函數(shù)文件,用戶可以像調(diào)用MATLAB再帶工具箱內(nèi)函數(shù)一樣調(diào)用。2.6.1 m文件的分類MATALB的m文件分為兩種,一種是腳本文件,一種是函數(shù)文件。腳本文件,不接受輸入?yún)?shù),也不返回輸出參數(shù),文件執(zhí)行過程中產(chǎn)生的所有變量都存儲(chǔ)在工作空間中。函數(shù)文件,可以接受輸入?yún)?shù),也可以有返回值,文件執(zhí)行過程中產(chǎn)生的局部變量在文件執(zhí)行完畢后自動(dòng)釋放,不保存在工作空間中。2.6.2 m文件的編寫在MATLAB菜單欄中選擇“File”|“New”出現(xiàn)一個(gè)下拉菜單,如圖2.13所示。在下拉菜單中選擇“Script”新建一個(gè)腳本文件,選擇“Function”新建一

15、個(gè)函數(shù)文件。MATLAB程序自動(dòng)打開文本編輯器,用戶可以在文本編輯器中編寫m文件。2.6.3 m文件的調(diào)試MATLAB中常見調(diào)試錯(cuò)誤有兩種,一種是語法錯(cuò)誤,一種是邏輯錯(cuò)誤。語法錯(cuò)誤通常是因?yàn)槠磳戝e(cuò)誤,標(biāo)點(diǎn)漏寫或?qū)戝e(cuò)造成的, MATLAB 在運(yùn)行或P 碼編譯時(shí)一般都能發(fā)現(xiàn),終止執(zhí)行并報(bào)錯(cuò),根據(jù)提供的錯(cuò)誤信息能很快的確定錯(cuò)誤位置并改正。而邏輯錯(cuò)誤可能是算法問題,也可能是用戶對(duì)MATLAB 的指令使用不當(dāng)造成的程序運(yùn)行與預(yù)期不符,這種錯(cuò)誤有時(shí)沒有錯(cuò)誤提示,有時(shí)提供的錯(cuò)誤信息并不能定位錯(cuò)誤發(fā)生的位置。這種錯(cuò)誤發(fā)生在運(yùn)行過程中,影響因素比較多,而這時(shí)函數(shù)的工作空間已被刪除,調(diào)試起來比較困難。2.7 MA

16、TLAB圖形可視化MATLAB提供了強(qiáng)大的圖形功能,提供了各種各樣的數(shù)據(jù)圖形化函數(shù),把計(jì)算數(shù)據(jù)利用以圖形形式顯示出來,便于用戶分析結(jié)果。本章主要介紹MATLAB繪圖的基本步驟,以及二維圖形的繪制和三維圖形的繪制。2.7.1MATLAB繪圖步驟在MATLAB中繪制一個(gè)圖形文件的步驟:(1)數(shù)據(jù)準(zhǔn)備。確定變量的函數(shù)關(guān)系及取值范圍,明確橫坐標(biāo)變量和縱坐標(biāo)變量,計(jì)算出變量數(shù)據(jù); (2)設(shè)置圖形窗口的位置。在指定的位置創(chuàng)建新的繪圖窗口,缺省時(shí),打開Figure No.1或當(dāng)前窗。(3)繪制圖形,生成圖形文件。創(chuàng)建坐標(biāo)軸,調(diào)用繪圖函數(shù),設(shè)置圖形中線型、色彩、數(shù)據(jù)點(diǎn)形等屬性。(4)圖形的修飾。為了突出圖形顯

17、示結(jié)果,可對(duì)生成的圖形文件做進(jìn)一步調(diào)整如設(shè)置坐標(biāo)軸的范圍和刻度、圖形注釋(圖名、坐標(biāo)名、圖例、文字說明)等。(5)保存和導(dǎo)出圖形按指定文件格式保存圖形或?qū)С鰣D形,以備后續(xù)使用。2.7.2二維圖形繪制MATLAB中提供二維曲線繪制函數(shù)plot( )繪制曲線,其中線的顏色、點(diǎn)符號(hào)、線型、線寬、點(diǎn)符號(hào)大小、點(diǎn)顏色以及點(diǎn)邊框顏色可以根據(jù)用戶需求自行設(shè)置。函數(shù)plot( )的x和y是兩個(gè)基本輸入?yún)?shù)是自變量和因變量。根據(jù)輸入?yún)?shù),可以繪制出線段、曲線和參數(shù)方程曲線的函數(shù)圖形。2.7.3圖形的修飾在繪制曲線時(shí),MATLAB自動(dòng)安排曲線的線型、顏色及坐標(biāo)等屬性,但有時(shí)需要用戶對(duì)圖形的坐標(biāo)、曲線和注釋等進(jìn)行進(jìn)

18、一步的修飾,以增加圖像的可讀性,突出結(jié)果的顯示。MATLAB提供一些函數(shù)可以對(duì)圖形進(jìn)行修飾。2.7.4特殊圖形的繪制MATLAB還提供一些特殊圖形繪制的函數(shù),如直方圖、柱狀圖、等高線圖等。2.8 本章小結(jié)本章主要介紹了MATLAB的基礎(chǔ)知識(shí)。首先,介紹了MATLAB的發(fā)展史、MATLABR2010a的新功能和特點(diǎn)、運(yùn)行環(huán)境、工作界面、常用命令和幫助系統(tǒng)。其次,列舉了MATLAB程序中常用的數(shù)據(jù)類型,包括數(shù)值類型、字符與字符串、邏輯類型、函數(shù)句柄和結(jié)構(gòu)類型,特別介紹了MATLAB獨(dú)有的細(xì)胞數(shù)組類型。接下來,介紹了MATLAB中的基本數(shù)據(jù)存儲(chǔ)格式矩陣及矩陣的建立、操作和相關(guān)函數(shù)。然后,MATLAB作為一種高級(jí)程序設(shè)計(jì)語言和其它高級(jí)語言一樣具有流程控制語句

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論