版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第二章第二章 觀測數(shù)據(jù)的分析與處理觀測數(shù)據(jù)的分析與處理21 MATLAB語言語言 22 回歸分析回歸分析 2.1MATLAB語言語言 2.1.1 MATLABMATLAB語言簡介語言簡介 2.1.2 MATLABMATLAB基本操作命令基本操作命令 2.1.3 控制流語句控制流語句 2.1.4 繪圖功能繪圖功能2.1.5 M文件文件 2.1.1 MATLAB2.1.1 MATLAB語言簡介語言簡介 在1980年前后,美國的cleve Moler博士在New Mexico大學(xué)講授線性代數(shù)課程時,發(fā)現(xiàn)應(yīng)用其它高級語言編程極 為 不 便 , 便 構(gòu) 思 并 開 發(fā) 了 M A T L A B ( M
2、 A T r i x LABoratory,即矩陣實驗室),它是集命令翻譯、科學(xué)計算于一身的一套交互式軟件系統(tǒng)。1984年推出了該軟件的正式版本。在MATLAB下,矩陣的運算變得異常的容易,后來的版本中又增添了豐富多彩的圖形圖像處理及多媒體功能,使得MATLAB的應(yīng)用范圍越來越廣泛,Moler博士等一批數(shù)學(xué)家與軟件專家組建了一個名為MathWorks的軟件開發(fā)公司,專門擴展并改進MATLAB,并于1999年推出了5.3版本,該版本的功能已經(jīng)非常強大,現(xiàn)在還有人使用。目前最高版本為R2015a R2015a ( (版本版本 8.5) (https:/ (https:/ (2015年3月)。 MA
3、TLAB是一種高性能數(shù)值計算語言。它有計算、可視化和程序設(shè)計三大功能,使用時,用戶可以用自己熟悉的數(shù)學(xué)符號來表達要求解的問題及其答案。 目前的MATLAB 已經(jīng)成為國際上最為流行的軟件之一。在大學(xué)中,它已成為數(shù)學(xué)、工學(xué)和理學(xué)等專業(yè)各類課程的標(biāo)準(zhǔn)教學(xué)工具。在工業(yè)領(lǐng)域,它是高效率地進行科研、開發(fā)和分析的首選工具。它除了傳統(tǒng)的交互式編程之外,還提供了豐富可靠的矩陣運算、圖形繪制、數(shù)據(jù)處理、圖像處理、方便的windows編程等便利工具,出現(xiàn)了各種以MATLAB為基礎(chǔ)的實用工具箱(包含有許多MATLAB函數(shù),利用這些函數(shù)能對某專門領(lǐng)域的各類問題進行求解。),這些工具箱涉及自動控制、圖像信號處理、神經(jīng)網(wǎng)絡(luò)
4、、模糊邏輯、小波分析、仿真、數(shù)理統(tǒng)計、工藝計算和優(yōu)化設(shè)計等領(lǐng)域??傊?,MATLAB具有一般高級語言難以比擬的優(yōu)勢。 2.1.2 MATLAB2.1.2 MATLAB基本操作命令基本操作命令 MATLAB語言可以認(rèn)為是一種解釋性語言,用戶可以在MATLAB的命令(行)窗口(窗口標(biāo)題為”MATLAB Command Windows”)中鍵入一個命令或一個用MATLAB語言編寫的可執(zhí)行文件(M文件,MATLAB應(yīng)用程序)名,這樣MATLAB軟件對此命令或程序中的各條語句進行翻譯,然后在MATLAB環(huán)境中對它進行處理,最后返回運算結(jié)果。 MATLAB語言由早期專門用于矩陣運算的計算機語言發(fā)展而來,這正
5、如其名稱-“矩陣實驗室”(Matrix,Laboratory)的含義一樣。它最基本、也是最重要的功能就是“進行實數(shù)矩陣或復(fù)數(shù)矩陣運算”。因向量可作為矩陣的一列或一行,標(biāo)量(一個數(shù))有時則作為只含一個元素的矩陣,故向量和標(biāo)量都可以作為特殊矩陣來處理。MATLAB的操作和命令對于矩陣來說,并不完全等同于我們平時使用的形式,而是有著它自己的規(guī)定。 MATLAB除了矩陣運算(Matrix Operations)之外,還另外一種重要的運算功能,即所謂的數(shù)組運算(Array Operations)。在非正式場合,數(shù)組和矩陣這兩個術(shù)語可以互換使用。更精確地講,矩陣是表示線性變換的二維數(shù)值數(shù)組。以矩陣為對象定
6、義的數(shù)學(xué)操作就構(gòu)成了線性代數(shù)學(xué)科。離開線性代數(shù)領(lǐng)域,矩陣就變成了二維數(shù)組。對數(shù)組的任何算術(shù)運算是元素對元素的運算(Arithmetic operations on arrays are done element-by-element)。 基本知識基本知識 矩陣運算矩陣運算 向量和矩陣的操作向量和矩陣的操作 數(shù)組運算數(shù)組運算 基本知識基本知識1) 簡單矩陣的輸入 2) 矩陣元素 3) 復(fù)數(shù)和復(fù)數(shù)矩陣 4) MATLAB語句和變量 5) 固定變
7、量 6) 獲取MATLAB的工作空間信息 7) 數(shù)據(jù)的存儲和調(diào)用(保存和加載工作空間) 8) 算術(shù)運算符 9) 數(shù)據(jù)顯示格式 10) 函數(shù)11) 幫助命令 簡單矩陣的輸入簡單矩陣的輸入 直接輸入矩陣的元素; 利用內(nèi)部語句或函數(shù)產(chǎn)生矩陣; 利用M文件產(chǎn)生矩陣; 利用外部數(shù)據(jù)文件裝入到指定矩陣。直接輸入矩陣元素直接輸入矩陣元素 MATLAB語言對矩陣的維數(shù)及類型沒有限制,即用戶無需定義變量的類型和維數(shù),MATLAB會自動獲取所需的存儲空間。 輸入矩陣最便捷的方式為直接輸入矩陣的元素,其約定如下: I 元素之間用空格或逗號間隔; II 用中括號()把所有元素括起來; III 用分號(;)指定行結(jié)束(
8、即行與行之間用分號隔開)。 例如,在MATLAB的工作空間中,輸入:a1 2 3; 4 5 6; 7 8 9則其輸出結(jié)果為: a 1 2 3 4 5 6 7 8 9矩陣A一直保存在工作空間中,以供后面使用,直至修改它。 大矩陣可以分成幾行進行輸入,用回車符代替分號。例如輸入上述矩陣a: a 1 2 3 4 5 67 7 8 9 利用內(nèi)部語句或函數(shù)產(chǎn)生矩陣?yán)脙?nèi)部語句或函數(shù)產(chǎn)生矩陣 利用內(nèi)部語句和函數(shù)可以快速產(chǎn)生矩陣,可獲得一些特別有用的矩陣,如全零陣、單位陣、隨機陣等。zerosAll zeros(元素全為0)onesAll ones(元素全為1)randUniformly distribut
9、ed random elements(元素為服從均勻分布的隨機數(shù))randn Normally distributed random elements(元素為服從正態(tài)分布的隨機數(shù))利用利用M M文件產(chǎn)生矩陣文件產(chǎn)生矩陣 可以由M文件(以.m為后綴的磁盤文件)產(chǎn)生矩陣,例如假設(shè)genam存放在MATLAB能搜索到的一個子目錄下,其文件的內(nèi)容為: a1 2 3 4 5 6 7 8 9 則在MATLAB命令窗口中輸入gena也可產(chǎn)生矩陣a。 利用外部數(shù)據(jù)文件裝入到指定矩陣?yán)猛獠繑?shù)據(jù)文件裝入到指定矩陣 利用load命令或fread命令可以讀取MATLAB在早期會話中所產(chǎn)生的矩陣(二進制文件,擴展名通
10、常為“.mat”),也可讀取由其它應(yīng)用程序產(chǎn)生的數(shù)據(jù)(文本文件,文件的內(nèi)容為一矩形數(shù)值表,其中的每一行代表矩陣的一行,各個數(shù)值用空格隔開)。例如,先創(chuàng)建一個四行文本文件: 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0用“magik.dat”為文件名把這個文件存放到一MATLAB能搜索到的目錄下。然后鍵入如下命令:load magik.datMATLAB將讀取這個文件并創(chuàng)建一個含有上述矩陣的變量“magik”。 矩陣元素矩陣元素 在MATLAB中,矩陣元素可以采用任意形式的表達式,例如: x-13 s
11、qrt(3) (1十2十3)* 45其結(jié)果為: x13000 17321 48000 可以由小矩陣構(gòu)成大矩陣可以由小矩陣構(gòu)成大矩陣,如: r 10 11 12 a aaa; rr其結(jié)果為: a= 1 2 3 4 5 6 7 8 9 10 11 12也可以從大矩陣中抽取一小矩陣也可以從大矩陣中抽取一小矩陣,例如: b ba(1a(1:3 3, :) )則結(jié)果為: b 1 2 3 4 5 6 7 8 9命令中第命令中第2 2個冒號個冒號(:)(:)表示所有的列表示所有的列,即從a中抽取l-3行的所有列,以構(gòu)成新的矩陣b。又如: ca(:,:, 1:2) 則其結(jié)果為: c l 2 4 5 7 8 1
12、0 11命令中的第1個冒號(:)表示所有的行。 在在MATLABMATLAB中中”:”一個重要的字符,如一個重要的字符,如x x1 1:4 4即產(chǎn)生即產(chǎn)生一個一個l-4l-4單位增量的單位增量的行向量行向量x1 2 3 4 也可以產(chǎn)生單位增量小于也可以產(chǎn)生單位增量小于1 1的的行向量行向量,方法是把增量放,方法是把增量放在起始和結(jié)尾量的中間,并用冒號分割開來。在起始和結(jié)尾量的中間,并用冒號分割開來。如: y y0 0:pipi4 4:pipi即產(chǎn)生一個從0到的行向量,單位增量是407854,所以得 y0 0.7854 1570 8 23562 314l 6 也可以產(chǎn)生單位增量為負(fù)數(shù)的行向量,如
13、:z7:-1:2,即得 z7 6 5 4 3 2 冒號用于產(chǎn)生數(shù)列冒號用于產(chǎn)生數(shù)列虛數(shù)以i或j為后綴,5i,3.14j,3+4i,a+bj 復(fù)數(shù)和復(fù)數(shù)矩陣復(fù)數(shù)和復(fù)數(shù)矩陣變量的命名變量的命名 和其它任意一種計算機高級語言一樣,MATLAB語言的命名有一套規(guī)則,如表2-3所示。 表2-3 MATIAB語言中變量的命名規(guī)則 MATLAB語句與變量語句與變量命名規(guī)則注釋變量名對大小寫敏感Fruit,fruit,FrUit是不同的變量每個變量名最多可以包含19個字符 變量名的首字符必須是字母標(biāo)點符號不能出現(xiàn)在變量名中常用格式常用格式:變量=表達式;返回結(jié)果:變量=結(jié)果例如:輸入a=4/2a=2.0000
14、輸入4/2ans=2.0000ans:答案eps:浮點計算相對精度,2e-52pi:圓周率inf:無窮大或無窮小NaN:非數(shù)值(Not_a_number) 固定變量固定變量工作空間(Workspace)是可以通過命令行窗口進行存取的內(nèi)存區(qū)域(The workspace is the area of memory accessible from the MATLAB command line.),在其中包含了一組可以在命令窗口中進行調(diào)整的參數(shù)(或變量),可以用who或whos命令進行查看,可以用clear命令進行刪除,也可用工作空間瀏覽器對工作空間中的變量進行瀏覽、調(diào)整和刪除等操作。內(nèi)存瀏覽器(
15、工作空間瀏覽器)MATLAB有一個專門用于MATLAB內(nèi)存變量操作的圖形用戶界面,即內(nèi)存變量瀏覽器(Workspace Browser)。 獲取獲取MATLAB的工作空間信息的工作空間信息內(nèi)存(工作空間)瀏覽器工作的作用內(nèi)存(工作空間)瀏覽器工作的作用 顯示內(nèi)存中所有變量的屬性; 當(dāng)用鼠標(biāo)“點亮”對話框中某變量后,若再點動Delete鍵,則該變量將被清除; 當(dāng)用鼠標(biāo)“點亮”對話框中某變量(如X)后,若再點動Open鍵,將出現(xiàn)編輯器;內(nèi)存變量編輯器的作用內(nèi)存變量編輯器的作用 直接觀察變量中的具體元素 ; 修改變量中的某元素。操作方法是:用鼠標(biāo)“點動”待修改的元素,使該元素的方框變黑,就可進行修改
16、 ; 輸入較大的數(shù)組 ;利用內(nèi)存變量編輯器輸入較大數(shù)組利用內(nèi)存變量編輯器輸入較大數(shù)組 在指令窗里,向一個新變量賦“空”陣 ; 在內(nèi)存瀏覽器中,雙擊該變量,打開變量編輯器 ; 在變量編輯器左下方的2個填充欄中填寫待建矩陣的“行數(shù)”和“列數(shù)”,于是在編輯窗中就出現(xiàn)空白表格。表格的每個方格對應(yīng)矩陣的一個元素。在方格中填寫元素值 ;數(shù)據(jù)的存取與調(diào)用(保存和加載工作空間)數(shù)據(jù)的存取與調(diào)用(保存和加載工作空間) 在MATLAB的工作空間中可以方便地將數(shù)據(jù)存成文件,也可以隨時調(diào)用數(shù)據(jù)文件。選擇工作空間中File菜單項的子菜單項Save Workspace as. 同樣,選擇工作空間中File菜單項的Impo
17、rt Data子菜單項,可以方便地調(diào)用存儲的數(shù)據(jù)文件。 數(shù)據(jù)的存儲和調(diào)用,除了菜單操作之外,還可以直接在工作空間中輸入命令。鍵入命令save,則將工作空間中所有變量存入到磁盤上的MATLAB的工作空間文件(擴展名為.mat)中,當(dāng)MATLAB再被運行時,鍵入命令load,則將這些變量從工作空間文件(例如MATLAB.mat文件)中調(diào)出并重新裝入到MATLAB的工作空間中去。 算術(shù)運算符算術(shù)運算符 矩陣運算符; 數(shù)組運算符;1當(dāng)前目錄窗口當(dāng)前目錄是指MATLAB運行文件時的工作目錄,只有在當(dāng)前目錄或搜索路徑下的文件、函數(shù)可以被運行或調(diào)用。在當(dāng)前目錄窗口中可以顯示或改變當(dāng)前目錄,還可以顯示當(dāng)前目錄
18、下的文件并提供搜索功能。將用戶目錄設(shè)置成當(dāng)前目錄也可使用cd命令。例如,將用戶目錄c:mydir設(shè)置為當(dāng)前目錄,可在命令窗口輸入命令:cd c:mydir當(dāng)前目錄窗口和搜索路徑 2MATLAB的搜索路徑當(dāng)用戶在MATLAB命令窗口輸入一條命令后,MATLAB按照一定次序?qū)ふ蚁嚓P(guān)的文件?;镜乃阉鬟^程是:(1) 檢查該命令是不是一個變量。(2) 檢查該命令是不是一個內(nèi)部函數(shù)。(3) 檢查該命令是否當(dāng)前目錄下的M文件。(4) 檢查該命令是否MATLAB搜索路徑中其他目錄下的M文件。 用戶可以將自己的工作目錄列入MATLAB搜索路徑,從而將用戶目錄納入MATLAB系統(tǒng)統(tǒng)一管理。設(shè)置搜索路徑的方法有:
19、 (1) 用path命令設(shè)置搜索路徑。例如,將用戶目錄c:mydir加到搜索路徑下,可在命令窗口輸入命令:path(path,c:mydir) (2) 用對話框設(shè)置搜索路徑 在MATLAB的File菜單中選Set Path命令或在命令窗口執(zhí)行pathtool命令,將出現(xiàn)搜索路徑設(shè)置對話框。通過Add Folder或Add with Subfolder命令按鈕將指定路徑添加到搜索路徑列表中。在修改完搜索路徑后,則需要保存搜索路徑。矩陣運算符矩陣運算符 +,-,*,/(右除法)(左除法)(乘方) 數(shù)組運算符數(shù)組運算符 + 加(Addition)- 減(Subtraction).* 乘(Elemen
20、t-by-element multiplication)./ 除(Element-by-element division). 左除(Element-by-element left division). 乘方(Element-by-element power). 非共軛轉(zhuǎn)罩(Unconjugated array transpose) 數(shù)據(jù)顯示格式數(shù)據(jù)顯示格式 任何MATLAB語句的執(zhí)行結(jié)果都可在屏幕上顯示,同時賦值給指定的變量,沒有指定變量時賦值給一個特殊的變量ans,數(shù)據(jù)顯示格式可由format命令來控制。format只影響結(jié)果的顯示,不影響其計算與存儲。MATLAB總是以雙精度執(zhí)行所有運算。
21、如果矩陣元素是整數(shù),則矩陣顯示沒有小數(shù)。如: x-1 0 1,顯示結(jié)果為 x-1 0 1 。如果矩陣元素不是整數(shù),則輸出形式有: (1)缺省格式,又稱為短格式,只顯示包含4位小數(shù)的十進制數(shù)。 (2)位數(shù)很多時使用科學(xué)表示法。 MATLAB命令數(shù)值范圍注釋format long35.833 333 333 333 34長格式format short e3.583 3e+01短格式e方式format long e35.833 333 333 333 34e+01長格式e方式format hex4041eaaaaaaaaaab16進制格式format bank35.83銀行格式format +緊密格
22、式,用”+”、”-”或空格來示意地表示數(shù)字format rat215/6有理格式format short35.833 3短格式函數(shù)函數(shù) 分類:分類:(1) 內(nèi)部函數(shù):在系統(tǒng)內(nèi)核中; (2) 工具箱中的函數(shù):以M文件的形式存在,源代碼可見;(3) 用戶自己增加的函數(shù)。 幫助命令幫助命令 幫助命令(help); 查找命令(lookfor) ; doc命令 從菜單上獲取幫助 helphelp HELP On-line help, display text at command line. HELP, by itself, lists all primary help topics. Each pri
23、mary topic corresponds to a directory name on the MATLABPATH. HELP TOPIC gives help on the specified topic. The topic can be a command name, a directory name, or a MATLABPATH relative partial pathname (see HELP PARTIALPATH). If it is a command name, HELP displays information on that command. If it i
24、s a directory name, HELP displays the Table-Of-Contents for the specified directory. For example, help general and help matlab/general both list the Table-Of-Contents for the directory toolbox/matlab/general. HELP FUN displays the help for the function FUN. lookforlookfor 關(guān)鍵詞查詢命令 。LOOKFOR Search all
25、 M-files for keyword. LOOKFOR XYZ looks for the string XYZ in the first comment line (the H1 line) of the HELP text in all M-files found on MATLABPATH. For all files in which a match occurs, LOOKFOR displays the H1 line. docdoc DOC Display HTML documentation in the Help browser.DOC, by itself, displ
26、ays the start page for the online doc. DOC FUNCTION displays the HTML documentation for the MATLAB function FUNCTION. If FUNCTION is overloaded, doc lists the overloaded functions in the MATLAB command window. DOC TOOLBOX/FUNCTION displays the HTML documentation for the specified toolbox function.從菜
27、單上獲取幫助MATLAB還提供了Windows下的查詢方法,這和一般Windows程序的聯(lián)機幫助系統(tǒng)是統(tǒng)一的。 矩陣運算矩陣運算1) 轉(zhuǎn)置 2) 加減 3) 乘法 4) 除法 5) 矩陣的乘方 6) 矩陣的超越函數(shù) 轉(zhuǎn)置x=1 2 3y=xy=12 3加減兩矩陣的對應(yīng)元素相加減。乘法矩陣乘法用”*”表示,當(dāng)兩矩陣中前一矩陣的列數(shù)和后一矩陣的行數(shù)相同時,可以進行乘法運算,這與數(shù)學(xué)上的形式是一致的,兩個相同維數(shù)向量的內(nèi)積(數(shù)學(xué)上稱為點積,標(biāo)量乘)也可以用這種乘法實現(xiàn)。例如:x-1 0 2,y-2 -1 1,則運算x*y和y* x都將得到結(jié)果:ans4 除法在MATL
28、AB中用兩種矩陣除法符號”和”分別表示左除和右除。AB等效于A的逆左乘B矩陣,也就是inv(A)* B,而BA等效于A矩陣的逆右乘B矩陣。 通常xAB是A * xB的解,xAB是x*AB的解。一般情況下AB不等于 AB。 矩陣的乘方AP表示A的P次方。如果A是一個方陣,P是一個標(biāo)量,且P是大于1的整數(shù),則A的P次冪即為A自乘P次。如果P不是整數(shù),則計算涉及特征值和特征向量的問題。例如若 V,Deig(A),則APV*DPV 其中V和D分別為矩陣A的特征向量矩陣和特征值矩陣。如果如果P是矩陣而是矩陣而A是標(biāo)量,以及是標(biāo)量,以及A,P都是矩陣,則都是矩陣,則AP都是都是不成立的不成立的。 矩陣的超
29、越函數(shù)在MATLAB中exp,sqrt等命令也可作用到矩陣上,但這種運算只是定義在矩陣的單個元素上,即分別對矩陣的每一個元素進行計算。 超越數(shù)學(xué)函數(shù)可以在函數(shù)后加上m而成為矩陣的超越函數(shù),例如expm(A), sqrtm(A), logm(A)分別為矩陣指數(shù)、矩陣開方和矩陣對數(shù)。這種運算用funm(A,exp)等也可以實現(xiàn),但它們所用的算法不同。矩陣的超越函數(shù)要求運算矩陣必須為方陣。 向量和向量和矩陣的操作矩陣的操作1) 引用矩陣元素 2) 空矩陣 3) 刪除向量或矩陣中的元素 引用矩陣元素MATLAB的下標(biāo)具有很重要的功能,可以在對矩陣的行、列子矩陣處理時使用
30、,也可以用來產(chǎn)生向量。使用下標(biāo)和向量,會使運算更為清晰和方便。單個的矩陣元素可在括號中用下標(biāo)來表達。例如,已知其中元素A(3,3)9,A(1,3)4,A(3,1)3等等。若用語句A(3,3)A(1,3)十A(3,1),利用原矩陣的元素產(chǎn)生新元素(即為A(3,1)十A(1,3)7)替代A矩陣中第三行第三列的元素A(3,3),則產(chǎn)生的新的A矩陣,其中A(3,3)=7. 下標(biāo)可以是一個向量,例如若x和v都是向量,則x(v)也是一個向量:x(v(1) x(v(2) x(v(n)。對于矩陣來說,向量下標(biāo)可以將矩陣中鄰近或不鄰近元素構(gòu)成一新的子矩陣;假設(shè)A是一個1010的矩陣,則A(1:5,3)指A中由前
31、5行對應(yīng)第三列元素組成的51子矩陣。又如A(1:5,7:10)是前5行對應(yīng)最后4列組成的54子矩陣。使用使用”:”代替下標(biāo),可以表示所有的行或列。代替下標(biāo),可以表示所有的行或列。如:A(:3)代表第三列元素組成的子矩陣,A (1:5,:)代表由前5行所有元素組成的子矩陣。 對于子矩陣的賦值語句,”:”有明顯的優(yōu)越性。如 A(A(:,:,33,5 5,10)10)B(B(:,:,1 1:3)3)表示將B矩陣的前三列,賦值給A矩陣的第三、第五和第十列。 通常如果v和w是具有整數(shù)性質(zhì)的向量,則A(v,w)通過取出行下標(biāo)v和列下標(biāo)w對應(yīng)的A的元素而形成新的矩陣。于是,A(A(:,:,1010:-1-1
32、:1)1)即為由原來A矩陣中取10至l負(fù)增長的列的元素組成一個新的矩陣,其行數(shù)仍為原來A矩陣的行數(shù),列數(shù)為10。 思考題思考題A(1,3,2,4)代表矩陣)代表矩陣A中那些元素?中那些元素?空矩陣語句X將一個00的矩陣賦給X,使用這個矩陣,不會引起出錯情況。X與clear X不同,clear是將X清除出工作空間,而空矩陣則存在于工作空間,只是具有“空尺寸”而已,當(dāng)用size測試表明其為空矩陣時,exist可以測出其確實存在。如果給出空矩陣,確定的矩陣函數(shù)如det(),cond(),prod(),sum()等會返回一個值。例如,當(dāng)給定空矩陣時,prod()、det()、和sum()將分別返回1、
33、1和0??站仃囋跀?shù)學(xué)上講它本身是空的,我們不能對其進行一般意義上的處理,但可以發(fā)現(xiàn)這個概念的確是很有用的。 刪除向量或矩陣中的元素從關(guān)系運算中建立包含有等刪除元素下標(biāo)的子矩陣,假設(shè)A是一個mn矩陣,L是一個k維的向量,則A(L,:)=將把L中的元素視為A的行號,并將A中的這些行刪除。例如:A = 1 2 3 4 5 6 7 8 9 L = 1 3 A(L,:)= A = 4 5 6 數(shù)組運算數(shù)組運算1) 乘、除和乘方 2) 邏輯運算 3) 基本數(shù)學(xué)函數(shù) 數(shù)組運算是元素對元素的運算。數(shù)組元素的下標(biāo)編號或索引號從1開始,對多維數(shù)組元素的引用可以采用單下標(biāo)或全下標(biāo)。以
34、三維數(shù)組為例,其單下標(biāo)編號順序為先列、后行、再面(與第三維相對應(yīng))。例如對于一個維數(shù)為3x2x4 的三維數(shù)組A(1,2,2)和A(10)對應(yīng)同個數(shù)組元素。乘、除和乘方.*./.舉例(1)依次輸入如下指令:n = (0:9); pows = n n.2 2.n 則結(jié)果如下: pows = 0 0 1 1 1 2 2 4 4 3 9 8 4 16 16 5 25 32 6 36 64 7 49 128 8 64 256 9 81 512(2) 對數(shù)組進行基本數(shù)學(xué)函數(shù)運算也是元素對元素的運算 依次輸入如下指令:format short gx = (1:0.1:2);logs = x log10(x)
35、其結(jié)果為: logs = 1.0 0 1.1 0.04139 1.2 0.07918 1.3 0.11394 1.4 0.14613 1.5 0.17609 1.6 0.20412 1.7 0.23045 1.8 0.25527 1.9 0.27875 2.0 0.30103 邏輯運算any allfinda = 10 20 30 40 50 60 70 80 90 find(a50) ans = 3 6 8 9基本數(shù)學(xué)函數(shù) 函數(shù)名 功能 函數(shù)名 功能 sin正弦函數(shù) acoth 反雙曲余切函數(shù) sinh雙曲正弦函數(shù) exp 指數(shù)函數(shù) asin反正弦函數(shù) log 自然對數(shù)函數(shù) asinh反雙曲
36、正弦函數(shù) log10 常用(以10為底)對數(shù)函數(shù) cos余弦函數(shù)log2 以2為底對數(shù)函數(shù) cosh雙曲余弦函數(shù)ow2 以2為底的冪函數(shù) acos反余弦函數(shù)sqrt 平方根函數(shù) acosh反雙曲余弦函數(shù) nextpow2 求不小于變量的最小2指數(shù) tan正切函數(shù) abs 模函數(shù) tanh雙曲正切函數(shù) angle 相角函數(shù) atan反正切函數(shù) conj 復(fù)共軛函數(shù) atan2四象限反正切函數(shù) imag 復(fù)矩陣虛部函數(shù) atanh反雙曲正切函數(shù) real 復(fù)矩陣實部函數(shù) sec正割函數(shù) unwrap 打開相角函數(shù) sech雙曲正割函數(shù) isreal 實陣判斷函數(shù) asec反正割函數(shù) cplxpai
37、r 調(diào)整數(shù)為共軛對 asech反雙曲正割函數(shù) fix 朝零方向舍入函數(shù) csc余割函數(shù) floor 朝負(fù)方向舍入函數(shù) csch雙曲余割函數(shù) ceil 朝正方向舍入函數(shù) acsc反余割函數(shù) round 四舍五入函數(shù) acsch反雙曲余割函數(shù) mod (帶符號)求余函數(shù) cot余切函數(shù) rem 無符號求余函數(shù) coth雙曲余切函數(shù) sign 符號函數(shù) acot反余切函數(shù) 2.1.3 2.1.3 控制流語句控制流語句 為了使程序更富有靈活性,功能更強大,流程控制是不可或缺的。MATLAB提供了四種基本的流程控制方法。 if,else,elseif 根據(jù)邏輯條件執(zhí)行一系列運算 switch, case
38、,otherwise 根據(jù)條件值來選擇執(zhí)行的項目 while 根據(jù)邏輯條件來決定循環(huán)的執(zhí)行次數(shù) for 執(zhí)行固定次數(shù)的循環(huán) ifif、elseelse與與elseifelseif語句語句 if用來檢查邏輯運算、邏輯函數(shù)、邏輯變量值等邏輯表達式的真假,若為真則執(zhí)行接下來的指令或運算。寫法如下: ifif邏輯表達式運算指令 endend 如果想讓運算指令在相反的條件下執(zhí)行,則可以使用else。寫法如下: ifif邏輯表達式 運算指令一 elseelse 運算指令二 endend 當(dāng)條件符合時,MATLAB會執(zhí)行運算指令,而這組判別式的結(jié)束則用end來表示。另外,如果邏輯表達式為矩陣的話,MATLA
39、B會在矩陣內(nèi)的全部元素都為TRUE時才執(zhí)行運算指令一。 在MATLAB中也可以利用elseif來寫嵌套判斷式。寫法如下: ifif邏輯條件一 運算指令一 elseif邏輯條件二 運算指令二 elseif邏輯條件三 運算指令三 elseelse 運算指令四endendswitchswitch語句語句 switch 分支條件(數(shù)值或字符串)case 數(shù)值(或字符串) 運算指令一case 數(shù)值(或字符串) 運算指令二 otherwise 運算指令N end 基本的switch語句包含下列元素:switch:switch語句的開始,緊接著分支條件。分支條件可以是一個函數(shù)、變量或者表達式。 case:依
40、照分支條件的值,不同的case可以定義不同的運算指令。而緊接在case后面的就是此case的分支條件。之后接著一個或一串運算指令。 otherwise:若不符合所有case的條件,則程序就會執(zhí)行otherwise下面的表達式。 end:switch語句的結(jié)束。 注意注意:matlab的switch-case語句與C語言的switch-case語句不同,如果第一個case語句為真,則只執(zhí)行運算指令一,不再執(zhí)行后續(xù)的case語句。所以不需要break語句。(Note for C Programmers Unlike the C language switch statement, MATLABs
41、switch does not fall through. If the first case statement is true, the other case statements do not execute. So, break statements are not required) whilewhile語句語句 while(循環(huán)條件)運算指令end forfor語句語句 為什么MATLAB要提供兩種循環(huán)語句? 答案很簡單,如果我們事先不知道循環(huán)需要執(zhí)行幾次的話,就利用while語句,反之可以用for語句。for的語法如下: for(計數(shù)器=初始值:增量:終止值) 運算指令 end該
42、循環(huán)會依照計數(shù)器的值來決定運算指令的循環(huán)次數(shù)。其方法是:一開始計數(shù)器設(shè)定為初始值,并判斷是否大于終止值,如果沒有則執(zhí)行運算指令;下一次將計數(shù)器加上增量,重復(fù)上次的判斷直到計數(shù)器大于終止值時跳出循環(huán)。其中,如果不給定增量,MATLAB會自動取為1。 2.1.4 2.1.4 繪圖功能繪圖功能 MATLAB采用了許多先進技術(shù),以提供功能強大的圖形系統(tǒng)。圖形系統(tǒng)是建立在諸如線、面等圖形對象集合的基礎(chǔ)上的,用戶可通過設(shè)置對象特征來控制圖形的產(chǎn)生。然而由于MATLAB提供了豐富的二維、三維圖形函數(shù),因此大多數(shù)情況下,用戶無需使用這些低級的圖形函數(shù)。 MATLAB提供了在二維平面上顯示圖形和標(biāo)注圖形的許多函
43、數(shù)。本節(jié)將詳細(xì)介紹這些函數(shù),并給出一些典型的應(yīng)用示例。 基本繪圖函數(shù)基本繪圖函數(shù) MATLAB提供了下列一些繪圖函數(shù)和圖形標(biāo)注函數(shù): plot針對向量或矩陣的列繪制出XY曲線; fplot 根據(jù)函數(shù)或函數(shù)表達式繪制出函數(shù)曲線; loglog在對數(shù)坐標(biāo)系中繪制XY曲線; semilogx以X軸為對數(shù)坐標(biāo),Y軸為線性坐標(biāo),繪制XY曲線; semilogy以Y軸為對數(shù)坐標(biāo),X軸為線性坐標(biāo),繪制XY曲線; title -在圖形上加上標(biāo)題; xlabel給X軸加上標(biāo)注; ylabel給Y軸加上標(biāo)注; text在指定位置上顯示文本字符串; gtext利用鼠標(biāo)在圖形上放置文本字符串; grid顯示網(wǎng)格線。其
44、中前4個函數(shù)為繪圖命令,它們基本相同,其區(qū)別僅在于坐標(biāo)軸的設(shè)定;后6個函數(shù)為標(biāo)注命令,可在圖形中加上合適的注解。特殊繪圖函數(shù)特殊繪圖函數(shù) MATLAB還提供了一些繪制二維圖形的特殊函數(shù): barbar繪制條形圖繪制條形圖; compass繪制復(fù)數(shù)的幅相圖; errorbar繪制誤差條形圖; feather沿著水平軸等間隔地繪制復(fù)數(shù)的幅相圖; fplot計算某函數(shù)并繪制出結(jié)果曲線; histhist繪制直方圖繪制直方圖; polar在極坐標(biāo)系中繪圖; quiver在梯度或矢量場中繪圖; rose繪制角度直方圖; stairs繪制類似于條形圖的圖形,但不含內(nèi)部線條; fill繪制多邊形填充圖。 繪
45、制簡單的曲線繪制簡單的曲線 MATLAB中最常用的繪圖函數(shù)為plot。它可以在二維平面上繪制曲線,根據(jù)其參數(shù)的不同可繪制出不同的曲線。 plot 1plot(y) 當(dāng)y為一向量時,它以y的序號作為x軸,按向量y的值繪制曲線。 2plot(X,Y) X、Y均為向量,這時以向量x作為x軸,向量Y作y 軸,繪制出典型的二維曲線。X=x(i),Y=y(i),則plot(X,Y)先描出點(x(i),y(i),然后用直線依次相連 。 3plot(X,Y1,cs,X,Y2,cs,.) 以公共的X向量作為x軸,分別以Y1,Y2,繪制出多條曲線,每條曲線的外形可由相應(yīng)的字符cs來指定。其中c為表示曲線顏色的字符
46、,s表示線型格式。 符 號 顏 色 符 號 線型格式 y m c r g b w k 黃色 洋紅色 青色 紅色 綠色 藍色 白色 黑色 .oX+*-:-.- 點 圓 叉號 加號 星號 實線 點線 點劃線 虛線 曲線顏色與線型格式 例如在xY平面內(nèi)繪制兩條曲線y1sin(x+025)和y2sin(x+05),其程序非常簡單。 x0:pi100:2*pi; y1sin(x+25); y2sin(x+5); plot(x,y1,r-,x,y2,g) 利用title等語句可加上適當(dāng)?shù)淖⑨?,如采用命令?title( the plot of sin(x) ) xIabel(x) ylabel(ysin(
47、x+angle) fplot MATLAB 60提供了一個非常實用的函數(shù)fplot,用于繪制指定坐標(biāo)范圍的函數(shù)圖像。使用此函數(shù)有以下幾種格式: (1)fplot( function ,limits),在指范圍內(nèi)繪制函數(shù)圖像,字符串型參數(shù)function用于指定函數(shù)名稱(該函數(shù)可以是MATLAB自帶的,也可以是用戶自己定義的。)或函數(shù)表達式,limits用于指定坐標(biāo)范圍,例如:fplot(sin,-6*pi, 6*pi)。 (2)fplot(function,limits,LineSpec),參數(shù)ULineSpec用于指定線型,例如以下指令: fplot(sin,-4,4,-.r*); 字符串-
48、.r指定畫線樣式為短線加一個點,顏色為紅色,點的樣式為*號. bar, hist和和stairholdhold命令命令 hold on命令可保留已繪制的圖形,即后續(xù)的繪圖命令產(chǎn)生的曲線會疊加在已有的圖形上。當(dāng)然,如果新數(shù)據(jù)的范圍超出了原曲線數(shù)據(jù)的范圍,則會自動調(diào)節(jié)x、Y的坐標(biāo)。Hold off命令可使后續(xù)繪圖命令產(chǎn)生一個新的圖形,這是MALTLAB的缺省情況。 因此,利用hold on命令,可以在同一張圖上,繪制出由多條plot函數(shù)命令產(chǎn)生的多條曲線。例如: t0:pi100:2*pi; xsin(t); y1sin(t + 025) ; y2sin(t + 05); plot(x); hol
49、d on; plot(y1,) plot(y2,) hold off figurefigure命令命令 figure 根據(jù)默認(rèn)屬性創(chuàng)建一個新圖形對象窗口并使該窗口位于所有窗口的最上層。 figure(n) 如果第n號圖形存在,使第n號圖形對象窗口并使該窗口位于所有窗口的最上層并準(zhǔn)備接受圖形輸出;否則,根據(jù)默認(rèn)屬性創(chuàng)建一個n號新圖形對象窗口并使該窗口位于所有窗口的最上層并準(zhǔn)備接受圖形輸出。 subplotsubplot命令命令 命令s u b p l o t 用于在同一個圖形窗口中繪制幾個圖形。s u b p l o t 本身并不繪制任何圖形,但是,它決定了如何分割圖形窗口以及下一幅圖將被畫在哪
50、個子窗口中。 2.1.5 M2.1.5 M文件文件 通常,MATLAB運行在單命令驅(qū)動模式下,即用戶可以通過鍵盤鍵入一條一條的MATLAB命令,每鍵入一條命令,MATLAB就立即執(zhí)行該命令并顯示出執(zhí)行結(jié)果。如: X1; y=x*3 y 3 有時,單靠一條一條地輸入命令難以實現(xiàn)復(fù)雜功能,為了代替在M AT L A B 命令窗口中一條一條地輸入M AT L A B 命令語句,可以把這些命令寫入一個文本文件,這個文本文件的擴展名必須為.M,該文件可用一個編輯器創(chuàng)建。每當(dāng)用戶輸入這個文件名和它的自變量時,這些命令就由M AT L A B 執(zhí)行。M AT L A B 從文件而不是從終端讀取命令,當(dāng)文件中
51、最后一個命令被執(zhí)行時,M AT L A B 能再從終端讀取命令。M AT L A B 將首先在當(dāng)前工作目錄下尋找此文件,如果它不在當(dāng)前目錄下,那么在該路徑下的所有目錄中搜索。該路徑保持在m a t l a b p a t h 中。如果想執(zhí)行一個沒有放在可以自動搜索處的一個文件,你可使用命令r u n 。 M 文件是一種文件:f i l e n a m e . mf i l e n a m e . m即,它必須有后綴.m .m 。 一個M 文件包含許多連續(xù)的M AT L A B 命令,它也可以引用其他的M 文件,可以遞歸,也就是說可以自己引用自己。由MATLAB語言編寫的磁盤文件稱為M文件,其擴展名為m。例如,besselm就是一個由一系列MATLAB語句編寫的M文件,它可用來產(chǎn)生Besse1(貝塞爾)函數(shù)。從功能上看,M文件可分為兩類: 底稿文件和函數(shù)文件。調(diào)用底稿文件會自動執(zhí)行一系列命令直至給出結(jié)果;函數(shù)文件則為 MATLAB提供了擴充性,通過函數(shù)文件,可以產(chǎn)生完成一特定功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度石油化工設(shè)備采購合同補充協(xié)議范本3篇
- 二零二五年度vi設(shè)計創(chuàng)意制作合同范本2篇
- 二零二五版環(huán)境安全風(fēng)險評估與治理合同3篇
- 合同管理在2025年度招投標(biāo)中的合規(guī)性分析3篇
- 二零二五版企業(yè)內(nèi)部技術(shù)人員掛靠合作合同范本3篇
- 二零二五年度高壓電氣設(shè)備采購及安裝合同2篇
- 二零二五版寶鋼集團勞動合同員工加班費及休息日工作安排3篇
- 二零二五年度車輛質(zhì)押擔(dān)保合同樣本2篇
- 二零二五版公路貨運合同道路運輸許可證管理與審查規(guī)范3篇
- 二零二五年度綠色環(huán)保房地產(chǎn)商品房買賣合同書3篇
- 10日益重要的國際組織第三課時中國與國際組織(教學(xué)設(shè)計)2023-2024學(xué)年統(tǒng)編版道德與法治六年級下冊
- Unit 1 同步練習(xí)人教版2024七年級英語上冊
- 工程管理重大風(fēng)險應(yīng)對方案
- 直播帶貨助農(nóng)現(xiàn)狀及發(fā)展對策研究-以抖音直播為例(開題)
- 腰椎間盤突出疑難病例討論
- 《光伏發(fā)電工程工程量清單計價規(guī)范》
- 2023-2024學(xué)年度人教版四年級語文上冊寒假作業(yè)
- (完整版)保證藥品信息來源合法、真實、安全的管理措施、情況說明及相關(guān)證明
- 營銷專員績效考核指標(biāo)
- 陜西麟游風(fēng)電吊裝方案專家論證版
- 供應(yīng)商審核培訓(xùn)教程
評論
0/150
提交評論