




已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章 MATLAB操作基礎(chǔ)1.1 MATLAB概述1.1.2 MATLAB的主要功能1數(shù)值計(jì)算MATLAB以矩陣作為數(shù)據(jù)操作的基本單位,還提供了十分豐富的數(shù)值計(jì)算函數(shù)。2繪圖功能可以繪制二維、三維圖形,還可以繪制特殊圖形(與統(tǒng)計(jì)有關(guān)的圖,例如:區(qū)域圖、直方圖、餅圖、柱狀圖等)。3編程語言MATLAB具有程序結(jié)構(gòu)控制、函數(shù)調(diào)用、數(shù)據(jù)結(jié)構(gòu)、輸入輸出、面向?qū)ο蟮瘸绦蛘Z言特征,而且簡單易學(xué)、編程效率高。4MATLAB工具箱MATLAB包含兩部分內(nèi)容:基本部分和各種可選的工具箱。MATLAB工具箱分為兩大類:功能性工具箱和學(xué)科性工具箱。1.1.3MATLAB語言的特點(diǎn)v 語言簡潔緊湊,使用方便靈活,易學(xué)易用。例如:A=1 2 3;4 5 6;7 8 9一條語句實(shí)現(xiàn)了對3x3矩陣的輸入。v 語句功能強(qiáng)大,一條語句相當(dāng)于其它語言的一個(gè)子程序,例如fft。v 語句簡單,內(nèi)涵豐富。同一個(gè)函數(shù)有不同的輸入變量和輸出變量,分別代表不同的含義。 v Matlab既具有結(jié)構(gòu)化的控制語句(if、for、while)又支持面向?qū)ο蟮某绦蛟O(shè)計(jì)。v 方便的繪圖功能。v 包含功能強(qiáng)勁的工具箱。v 易于擴(kuò)展。1.1.4 初識MATLAB例1-1 繪制正弦曲線和余弦曲線。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x);例1-2 求方程 3x4+7x3 +9x2-23=0的全部根。p=3,7,9,0,-23; %建立多項(xiàng)式系數(shù)向量x=roots(p) %求根例1-3 求積分quad(x.*log(1+x),0,1)例1-4 求解線性方程組。a=2,-3,1;8,3,2;45,1,-9; b=4;2;17; x=inv(a)*b1.2 MATLAB的運(yùn)行環(huán)境與安裝1.2.1 MATLAB的運(yùn)行環(huán)境硬件環(huán)境:(1) CPU (2) 內(nèi)存(3) 硬盤(4) CD-ROM驅(qū)動(dòng)器和鼠標(biāo)軟件環(huán)境:(1) Windows 98/NT/2000 或Windows XP(2) 其他軟件根據(jù)需要選用1.2.2 MATLAB的安裝 運(yùn)行系統(tǒng)的安裝程序setup.exe,可以按照安裝提示依次操作。1.3 MATLAB集成環(huán)境1.3.1 啟動(dòng)與退出MATLAB集成環(huán)境1MATLAB系統(tǒng)的啟動(dòng) 與一般的Windows程序一樣,啟動(dòng)MATLAB系統(tǒng)有3種常見方法:(1)使用Windows“開始”菜單。(2)運(yùn)行MATLAB系統(tǒng)啟動(dòng)程序matlab.exe。(3) 利用快捷方式。當(dāng)MATLAB安裝完畢并首次啟動(dòng)時(shí),展現(xiàn)在屏幕上的界面為MATLAB的默認(rèn)界面,如上圖所示。2MATLAB系統(tǒng)的退出要退出MATLAB系統(tǒng),也有3種常見方法:(1) 在MATLAB主窗口File菜單中選擇Exit MATLAB命令。(2) 在MATLAB命令窗口輸入Exit或Quit命令。(3) 單擊MATLAB主窗口的“關(guān)閉”按鈕1.3.2 主窗口MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,還主要包括菜單欄和工具欄。1菜單欄在MATLAB 6.5主窗口的菜單欄,共包含F(xiàn)ile、Edit、View、Web、Window和Help 6個(gè)菜單項(xiàng)。(1) File菜單項(xiàng):File菜單項(xiàng)實(shí)現(xiàn)有關(guān)文件的操作。(2) Edit菜單項(xiàng):Edit菜單項(xiàng)用于命令窗口的編輯操作。(3) View菜單項(xiàng):View菜單項(xiàng)用于設(shè)置MATLAB集成環(huán)境的顯示方式。 (4) Web菜單項(xiàng):Web菜單項(xiàng)用于設(shè)置MATLAB的Web操作。(5) Window菜單項(xiàng):主窗口菜單欄上的Window菜單,只包含一個(gè)子菜單Close all,用于關(guān)閉所有打開的編輯器窗口,包括M-file、Figure、Model和GUI窗口。(6) Help菜單項(xiàng):Help菜單項(xiàng)用于提供幫助信息。1.3.3 命令窗口命令窗口是MATLAB的主要交互窗口,用于輸入命令并顯示除圖形以外的所有執(zhí)行結(jié)果。MATLAB命令窗口中的“”為命令提示符,表示MATLAB正在處于準(zhǔn)備狀態(tài)。在命令提示符后鍵入命令并按下回車鍵后,MATLAB就會(huì)解釋執(zhí)行所輸入的命令,并在命令后面給出計(jì)算結(jié)果。一般來說,一個(gè)命令行輸入一條命令,命令行以回車結(jié)束。但一個(gè)命令行也可以輸入若干條命令,各命令之間以逗號分隔,若前一命令后帶有分號,則逗號可以省略。例如xx=5,yy=3xx=5;yy=3多行命令()-續(xù)行符 如果命令語句超過一行或者太長希望分行輸入,則可以使用多行命令繼續(xù)輸入。 S=1-12+13+4+ 9-4-18; 3個(gè)小黑點(diǎn)稱為續(xù)行符,即把下面的物理行看作該行的續(xù)行。1.3.4 工作空間窗口 工作空間是MATLAB用于存儲(chǔ)各種變量和結(jié)果的內(nèi)存空間。在該窗口中顯示工作空間中所有變量的名稱、大小、字節(jié)數(shù)和變量類型說明,可對變量進(jìn)行觀察、編輯、保存和刪除。1.3.5 當(dāng)前目錄窗口和搜索路徑1當(dāng)前目錄窗口當(dāng)前目錄是指MATLAB運(yùn)行文件時(shí)的工作目錄,只有在當(dāng)前目錄或搜索路徑下的文件、函數(shù)可以被運(yùn)行或調(diào)用。 在當(dāng)前目錄窗口中可以顯示或改變當(dāng)前目錄,還可以顯示當(dāng)前目錄下的文件并提供搜索功能。將用戶目錄設(shè)置成當(dāng)前目錄也可使用cd命令。例如,將用戶目錄c:mydir設(shè)置為當(dāng)前目錄,可在命令窗口輸入命令: cd c:mydir2MATLAB的搜索路徑 在MATLAB命令窗口輸入一條命令后,MATLAB按照一定次序?qū)ふ蚁嚓P(guān)的文件。基本的搜索過程是:(1) 檢查該命令是不是一個(gè)變量。(2) 檢查該命令是不是一個(gè)內(nèi)部函數(shù)。(3) 檢查該命令是否當(dāng)前目錄下的M文件。(4) 檢查該命令是否MATLAB搜索路徑中其他目錄下的M文件。1.3.6 命令歷史記錄窗口 在默認(rèn)設(shè)置下,歷史記錄窗口中會(huì)自動(dòng)保留自安裝起所有用過的命令的歷史記錄,并且還標(biāo)明了使用時(shí)間,從而方便用戶查詢。而且,通過雙擊命令可進(jìn)行歷史命令的再運(yùn)行。如果要清除這些歷史記錄,可以選擇Edit菜單中的Clear Command History命令。1.3.7 啟動(dòng)平臺(tái)窗口和Start按鈕 MATLAB 6.5的啟動(dòng)平臺(tái)窗口可以幫助用戶方便地打開和調(diào)用MATLAB的各種程序、函數(shù)和幫助文件。 MATLAB 6.5主窗口左下角還有一個(gè)Start按鈕,單擊該按鈕會(huì)彈出一個(gè)菜單,選擇其中的命令可以執(zhí)行MATLAB產(chǎn)品的各種工具,并且可以查閱MATLAB包含的各種資源。1.4 MATLAB幫助系統(tǒng)1.4.1 幫助窗口進(jìn)入幫助窗口可以通過以下3種方法:(1) 單擊MATLAB主窗口工具欄中的Help按鈕。(2) 在命令窗口中輸入helpwin、helpdesk或doc。(3) 選擇Help菜單中的“MATLAB Help”選項(xiàng)。1.4.2 幫助命令 MATLAB幫助命令包括help、lookfor以及模糊查詢。1help命令 (1)直接輸入help命令將會(huì)顯示當(dāng)前幫助系統(tǒng)中所包含的所有項(xiàng)目; (2)help加函數(shù)名來顯示該函數(shù)的幫助說明。2lookfor命令help命令只搜索出那些關(guān)鍵字完全匹配的結(jié)果,lookfor命令對搜索范圍內(nèi)的M文件進(jìn)行關(guān)鍵字搜索,條件比較寬松。lookfor命令只對M文件的第一行進(jìn)行關(guān)鍵字搜索。若在lookfor命令加上-all選項(xiàng),則可對M文件進(jìn)行全文搜索。3模糊查詢 MATLAB 6.0以上的版本提供了一種類似模糊查詢的命令查詢方法,用戶只需要輸入命令的前幾個(gè)字母,然后按Tab鍵,系統(tǒng)就會(huì)列出所有以這幾個(gè)字母開頭的命令。1.4.3 演示系統(tǒng) 在幫助窗口中選擇演示系統(tǒng)(Demos)選項(xiàng)卡,然后在其中選擇相應(yīng)的演示模塊,或者在命令窗口輸入Demos,或者選擇主窗口Help菜單中的Demos子菜單,打開演示系統(tǒng)。第2章 Matlab及其應(yīng)用2.1、MATLAB的基本矩陣運(yùn)算2.1.1 簡單矩陣輸入1、命令行簡單鍵盤輸入用于很少數(shù)據(jù)輸入矩陣的方向:, ; NaN Inf 2、文件形式輸入文本文件:從文本文件中讀入數(shù)據(jù) mat文件:matlab自有的數(shù)據(jù)格式 2.1.2 語句生成矩陣1、線性等間距格式矩陣 (1)X=起始值:增加值:結(jié)束值 (2)linspace命令a=linspace(1,10,5);(3)logspace命令b=logspace(0,2,10)2、矩陣連接c=a b;生成矩陣的函數(shù)zeros ones eye randn 2.1.3 矩陣運(yùn)算1、矩陣的運(yùn)算符 :加法 :減法 *:乘法;點(diǎn)乘:.* /:右除;右除:./ :左除;左除:. :乘方 2、矩陣的轉(zhuǎn)置等運(yùn)算 共軛轉(zhuǎn)置; . 轉(zhuǎn)置 inv:矩陣求逆 det:求行列式值 eig:求特征值與特征向量 運(yùn)算規(guī)則:從左到右;先乘除后加減;乘方運(yùn)算符最高(1)兩矩陣加減,前提是維數(shù)相同,進(jìn)行加減運(yùn)算時(shí),對應(yīng)的元素進(jìn)行加減;(2)矩陣與標(biāo)量加減,用矩陣中的每個(gè)元素都與標(biāo)量進(jìn)行加減運(yùn)算;(3)兩矩陣相乘,前提是前一矩陣的列等于后一矩陣的行,與數(shù)學(xué)約定一樣;(4)矩陣與標(biāo)量相乘,用矩陣中的每個(gè)元素都與標(biāo)量進(jìn)行相乘;(5)矩陣中的元素對元素的相乘: .* 矩陣中的元素對元素的相除: ./ . z=x.y x,y均為向量:z(i)=x(i) y(i) x為向量,y為標(biāo)量:z(i)=x(i) y x為標(biāo)量,y為向量:z(i)=xy(i) 2.1.4 矩陣的超越函數(shù)函數(shù)名 含義 abs 絕對值或者復(fù)數(shù)模 sqrt 平方根 real 實(shí)部 imag 虛部 conj 復(fù)數(shù)共軛 round 4舍5入到整數(shù) fix 舍入到最接近0的整數(shù) floor 舍入到最接近-的整數(shù) ceil 舍入到最接近的整數(shù)函數(shù)名 含義 sign 符號函數(shù) rem 留數(shù) sin 正弦 cos 余弦 tan 正切 asin 反正弦 acos 反余弦 atan 反正切 atan2 第四象限反正切 函數(shù)名 含義 sinh 雙曲正弦 cosh 雙曲余弦 tanh 雙曲正切 exp 自然指數(shù) log 自然對數(shù) log10 以10為底的對數(shù) 2.2 關(guān)系和邏輯運(yùn)算1、 關(guān)系操作符(1)MATLAB常用的關(guān)系操作符有: (小于)、(大于)、=(大于或等于)、 = =(等于)、 =(不等于)。(2)MATLAB的關(guān)系操作符可以用來比較兩個(gè)大小相同的數(shù)組,或者比較一個(gè)數(shù)組和一個(gè)標(biāo)量。在與標(biāo)量比較時(shí),結(jié)果和數(shù)組大小一樣。(3)如果滿足指定的關(guān)系,返回1,否則返回0。 a=1:9;b=a4b =0 0 0 0 1 1 1 1 1c=a(a4)c =5 6 7 8 9 2 、邏輯操作符(1)邏輯操作符定義了一種與或非的關(guān)系表達(dá)式。 MATLAB的邏輯操作符有 &(與)、|(或)、(非) (2)所有邏輯運(yùn)算符連接的兩個(gè)操作數(shù)或者同維、同大小,或者其中一個(gè)為標(biāo)量。(3)邏輯運(yùn)算符都是對元素的操作,每個(gè)非零元素都當(dāng)作“1”處理,邏輯運(yùn)算的結(jié)果是由1和0構(gòu)成的矩陣。例如:c=(a4)c = 1 1 1 1 0 0 0 0 0c=(a4)&(aB=1 2 3;4 5 6; 7 8 9; B(2,: )= B=1 2 37 8 92、為了提取矩陣a的第n行、第m列的元素值,使用a(n,m)可以得到。同樣,將矩陣a的第n行、第m列的元素值賦為r,使用a(n,m)=r這樣的命令。 注意:在提取矩陣值時(shí),行或列的值大于矩陣的大小,則出錯(cuò);在給矩陣賦值時(shí),如果行或者列超出矩陣的大小,則MATLAB自動(dòng)擴(kuò)充矩陣的規(guī)模,使得可以賦值,擴(kuò)充部分以零填充。3、利用矩陣下標(biāo),MATLAB還提供了子矩陣功能。同樣是上面的a(n,m),如果n和m是向量,而不是標(biāo)量,則將獲得指定矩陣的子塊.4、同樣,矩陣的子塊還可以被賦值。如果在取子塊時(shí),n或m是“:”,則返回指定的所有行或列。5、矩陣的序號編址:按列計(jì)數(shù)。 2.3.2矩陣大小1、在MATLAB命令行中,使用whos命令可以查看到所有變量的大小。2、為了獲得矩陣或者向量的大小,MATLAB還提供了兩個(gè)有用的函數(shù)size和length。3、size按照下面的形式使用:m,n=size(a,x)。一般的,(1)不用參量x時(shí):當(dāng)只有一個(gè)輸出變量時(shí),size返回一個(gè)行向量,第一個(gè)數(shù)為行數(shù),第二個(gè)數(shù)為列數(shù);如果有兩個(gè)輸出變量,第一個(gè)返回量為行數(shù),第二個(gè)返回?cái)?shù)為列數(shù)。(2)當(dāng)使用x時(shí):x=1返回行數(shù),x=2返回列數(shù),這時(shí)只有一個(gè)返回值。4、length返回行數(shù)或者列數(shù)的最大值,即length(a)=max(size(a)。2.3.3 矩陣操作函數(shù)MATLAB提供了一組執(zhí)行矩陣操作的函數(shù),例如:flipud(a)使得矩陣上下翻轉(zhuǎn), fliplr(a)使得矩陣左右翻轉(zhuǎn)2.3.4 矩陣查找和排序1、子矩陣的查找使用find命令完成,它返回關(guān)系表達(dá)式為真的下標(biāo)。例如:a=10:20;find(a15)ans = 7 8 9 10 112、矩陣的排序使用sort函數(shù),它將矩陣按照升序排列。2.4 時(shí)間和日期 1、日歷函數(shù):calendar2、時(shí)間函數(shù):clock3、查看CPU 時(shí)間:cputime 4、日期函數(shù):date5、秒表定時(shí): tic toc2.5退出和保存工作空間: 1 、 save:工作空間中的所有變量保存在磁盤上名為matlab.mat的文件中。2 、 save 文件名 變量名將指定的變量保存在指定的文件中。如:save temp x y z把x y z這3個(gè)變量保存在文件temp.mat中。3、下次加載MATLAB時(shí),可以利用load命令將保存在文件中的變量恢復(fù)到工作空間中,其格式為:(1)load將保存在matlab.mat中的變量裝入到matlab空間中。(2)load 文件名 變量名從指定文件中將指定的變量裝入到matlab的工作空間中。如:load temp x從文件temp.mat 中只將變量x裝入到 matlab的工作空間中。2.6 Matlab的變量1、基本運(yùn)算 變量 逗號、分號的意義 行內(nèi)編輯、注釋、運(yùn)算規(guī)則2、變量要求變量區(qū)分字母的大小寫名字不能超過31個(gè)字符變量必須以字母開頭,之后可以是任意字母、數(shù)字或者下劃線變量中不能含有標(biāo)點(diǎn)符號2.6.1 特殊變量2.6.2 復(fù)數(shù)不需要特殊的處理,可以直接進(jìn)行。復(fù)數(shù)可以表示為:a=10-9i 2.6.3 MATLAB數(shù)據(jù)類型:雙精度型、字符型、稀疏型、單元型、結(jié)構(gòu)型、8位型最常使用的是雙精度型和字符型;稀疏型用于稀疏矩陣;單元型和結(jié)構(gòu)型用于編寫大型軟件;8位型(6.0以上版本:16位型、32位型)用于圖象處理。1、雙精度型(double): 在缺省情況下,當(dāng)結(jié)果為整數(shù),作為整數(shù)顯示;當(dāng)結(jié)果為實(shí)數(shù),以小數(shù)后4位的精度近似顯示。 如果結(jié)果中的有效數(shù)字超出了這一范圍,以科學(xué)計(jì)數(shù)法顯示結(jié)果。 2、字符型(char): a=sss;bbb a =sss bbb (1)字符數(shù)組的定義:字符數(shù)組就是字符串,字符串中的每一個(gè)字符在系統(tǒng)內(nèi)部都相應(yīng)地表示一個(gè)數(shù)值。 a=You are welcome! a =You are welcome! size(a) ans = 1 16 相關(guān)函數(shù)A、函數(shù)disp用來顯示字符串:disp(Hello) Hello B、判斷一個(gè)變量是否為字符型數(shù)組,可以用函數(shù)class或ischar。 x=class(a)y=ischar(a) x =chary = 1 (2)字符與數(shù)值的相互轉(zhuǎn)換: double:將一個(gè)字符串轉(zhuǎn)換為一個(gè)數(shù)值 char:將數(shù)值轉(zhuǎn)換為字符串 s=Good morning!s1=double(s)s2=char(s1) s =Good morning!s1 = 71 111 111 100 32 109 111 114 110 105 110 103 33s2 =Good morning! (3)字符串的比較A、strcmp:判別兩個(gè)字符串是否相等B、strncmp:判別兩個(gè)字符串的前n個(gè)字符是否相等s1=glisten;s2=glitter; a1=strcmp(s1,s2) a2=strncmp(s1,s2,3) a1 = 0a2 = 1 (4)二維字符數(shù)組: 創(chuàng)建二維字符數(shù)組時(shí),每行的長度要相等。如果字符串長度不等,可以用空格充填較短的字符串。例如:s=abc ;defg s =abc defg 用char函數(shù)創(chuàng)建二維字符數(shù)組比較方便。當(dāng)字符串長度不等時(shí),char函數(shù)可以自動(dòng)地在較短的字符中加上一定數(shù)量的尾部空格,使其與最長字符串的長度相等。例如: y=char(abc,defg,abcde) z1=length(y) z2=size(y) y =abc defg abcde z1 = 5z2 = 3 5 3、稀疏型(sparse):含有大量0的矩陣,稱為矩陣。只存儲(chǔ)矩陣中的非0元素speye(4) 生成單位稀疏矩陣ans = (1,1) 1 (2,2) 1 (3,3) 1 (4,4) 14、單元型(cell):把不同類型的數(shù)據(jù)存儲(chǔ)在一起的數(shù)組稱為單元數(shù)組。單元數(shù)組中的每個(gè)元素是其他任意一種數(shù)據(jù)類型,通??梢詫⑾嚓P(guān)的尺寸大小不同的數(shù)據(jù)組合在一起。 a=1,good,1 2 3 a = 1 good 1x3 double(1)創(chuàng)建單元數(shù)組:cellc=cell(n):生成一個(gè)n*n維的空數(shù)組c=cell(m,n):生成一個(gè)m*n維的空數(shù)組c=cell(size(A):生成一個(gè)和所包含的數(shù)組A階數(shù)完全相同的空數(shù)組EX1:A=eye(2) c=cell(size(A) A = 1 0 0 1c = EX2:給單元數(shù)組賦值D=cell(1,3) D1,1=Good; D1,2=1 2;4 5;D1,3=1+4i; D D = D = Good 2x2 double 1.0000+ 4.0000i EX3:利用直接輸入的方法創(chuàng)建單元數(shù)組,單元數(shù)組的下標(biāo)用圓括號括起來,右邊是單元數(shù)組的內(nèi)容,用花括號括起來。Aa(1,1)=GOOD;Aa(1,2)=200;Aa(2,1)=5-6i;Aa(3,2)=1 2;4 5 Aa = GOOD 200 5.0000- 6.0000i 2x2 double (2)單元數(shù)組的顯示A、直接顯示Aa Aa = GOOD 200 5.0000- 6.0000i 2x2doubleB、利用函數(shù)顯示celldisp(Aa) celldisp(Aa,Bb)C、利用圖形顯示單元數(shù)組 cellplot(Aa) cellplot(Aa,legend) (4)單元數(shù)組的變形 E=reshape(X,1,6) cellplot(E) E = Welcome 4x4 double 3x3 double (5)字符型單元數(shù)組:由于字符矩陣要求矩陣的每一行的長度相等,需要在字符串的尾端加入空格,在讀取的時(shí)候,又常常將末尾的空格去掉,很不方便。由于單元數(shù)組允許不同的單元內(nèi)有不同類型和長度的數(shù)據(jù),問題就可以避免。cellstr:將標(biāo)準(zhǔn)的字符型數(shù)組轉(zhuǎn)換為字符型單元數(shù)組。EX1:ne=aaa;bb ; cellstr(ne) ans = aaa bb5、結(jié)構(gòu)型(struct):把不同類型的數(shù)組存儲(chǔ)在一起的數(shù)組稱為結(jié)構(gòu)數(shù)組。結(jié)構(gòu)數(shù)組相當(dāng)于數(shù)據(jù)庫的記錄。結(jié)構(gòu)數(shù)組中不同類型的數(shù)組是通過不同的域名來區(qū)分的。在MATLAB的結(jié)構(gòu)數(shù)組中,每個(gè)元素都是由不同的數(shù)據(jù)類型所組成的,不同的數(shù)據(jù)類型分別放在不同的數(shù)據(jù)區(qū)域里,稱為結(jié)構(gòu)數(shù)組的域。(1)建立結(jié)構(gòu)數(shù)組A、利用函數(shù)struct建立結(jié)構(gòu)數(shù)組調(diào)用格式:s=struct(field 1,values 1,field 2,values 2,)例sxx=struct(name,zhao,Li,wang,age,20,21,29,address,changda) %注意: 所有的address都賦相同的值 sxx(1) sxx(2) B、利用賦值語句直接生成結(jié)構(gòu)數(shù)組=zhou; sss.age=10; sss.address=changda; sss =zhao sss = name: zhao age: 10 address: changda sss(3).address=chang an sss = 1x3 struct array with fields: name age address 相關(guān)函數(shù) A、getfield:獲取結(jié)構(gòu)數(shù)組中某個(gè)域的內(nèi)容B、setfield:設(shè)置結(jié)構(gòu)數(shù)組中某個(gè)域的內(nèi)容C、rmfield:刪除結(jié)構(gòu)數(shù)組的域D、isfield:判斷某個(gè)變量域是否是一個(gè)結(jié)構(gòu)數(shù)組的域E、isstruct:判斷某個(gè)變量域是否是一個(gè)結(jié)構(gòu)數(shù)組第3章 Matlab編程基礎(chǔ)3.1 Matlab 程序設(shè)計(jì)1、設(shè)置完整的路徑;(1)對于用戶程序中使用的文件名和變量名,系統(tǒng)按照以下順序搜索: A、查找對象是否是工作空間的變量; B、查找對象是否是系統(tǒng)的內(nèi)部函數(shù); C、查找對象是否是在系統(tǒng)的當(dāng)前目錄下。(2)路徑設(shè)置的方法: A、在命令窗口下使用cd命令; B、在菜單欄下的Current directory下。2、參數(shù)值要集中放在程序的開始部分,便于維護(hù);3、每行程序后輸入分號,則執(zhí)行程序行不會(huì)顯示在屏幕上;如果不輸入分號,則執(zhí)行程序行會(huì)顯示在屏幕上;4、符號“%”后的內(nèi)容是注釋行;5、如果語句在一行中放不下,則可以在行末鍵入三個(gè)點(diǎn)(),指示下一行為續(xù)行;6、遇到不明白的命令,多使用在線幫助命令或系統(tǒng)演示示例;7、盡量使程序模塊化,采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來執(zhí)行全部的操作。 MABLAB程序的基本組成部分: %說明部分清除命令(可選)定義變量(局部變量和全局變量)按照順序行執(zhí)行的命令語句控制語句開始 控制語句體 控制語句結(jié)束 其他命令(如繪圖等)3.1.2 Matlab的工作方式有二種1. 交互式的指令操作方式。即用戶在命令窗口中輸入命令并按下回車鍵后,系統(tǒng)執(zhí)行該指令并立即給出運(yùn)算結(jié)果。 2. m文件的編程方式。m文件是由 matlab語句構(gòu)成的文件,且文件名必須以.m為擴(kuò)展名,如ex.m。用戶可以用任何文件編輯器來對M文件進(jìn)行編輯。 MATLAB語言編寫的磁盤文件稱為M文件,擴(kuò)展名為m,格式為*.m,M文件可以互相調(diào)用,也可以調(diào)用它自己。(1)M文件在功能上分為:A、底稿文件對于簡單的問題,在命令窗口的MATLAB提示符下,輸入MATLAB的語句,這樣可以快速有效地得到結(jié)果。當(dāng)問題比較復(fù)雜時(shí),需要執(zhí)行一系列語句,在MATLAB提示符下鍵入語句就變的很麻煩。對這個(gè)問題,MATLAB提供了一種邏輯解決方案,允許用戶把MATLAB命令放在一個(gè)簡單的文本文件中,這些文件稱為底稿文件。 B.函數(shù)文件a. 格式: function f1,f2,=fun(x,y,z,)其中x,y,z,是形式輸入?yún)?shù),f1,f2,為返回的形式輸出參數(shù)值,fun為形式函數(shù)名,函數(shù)名一般就是這個(gè)函數(shù)文件的文件名。b.文件前面幾行由%開始的語句構(gòu)成了M文件的幫助信息,當(dāng)鍵入:help 文件名 可得到文件的說明信息。(help為在線幫助)(2)函數(shù)文件和底稿文件的區(qū)別: a、形式上,函數(shù)文件第一行必須包含關(guān)鍵字function,且有函數(shù)名和輸入輸出形式參數(shù),而底稿文件沒有; b、函數(shù)文件可以傳遞參數(shù),底稿文件不具備參數(shù)傳遞功能; c、函數(shù)文件中定義及使用的變量都是局部變量,只在本函數(shù)內(nèi)有效,底稿文件中定義及使用的變量都是全局變量,在退出文件后仍有效。 3.1.3 程序流程控制1.順序結(jié)構(gòu):Matlab 從上到下依次執(zhí)行各語句,該結(jié)構(gòu)最簡單。2.循環(huán)結(jié)構(gòu) (1)for-end 循環(huán) 用于循環(huán)次數(shù)事先確定的,格式為 for i=n:s:m (初值:步長:終值) 語句體 end s 為步長,可以為正數(shù),負(fù)數(shù)或小數(shù)。 說明:變量x通常稱為循環(huán)變量。循環(huán)變量可以是一個(gè)數(shù)組。如果循環(huán)變量是數(shù)組,在for和end語句之間的commands按數(shù)組中的每一列執(zhí)行一次。在每一次迭代中,x被指定為數(shù)組的下一列,即在第n次循環(huán)中,x=array(:, n)。例如,x=0 2 3;4 7 9for a=x /把矩陣x的每一列元素依次賦給變量Ab=a+4end 運(yùn)行結(jié)果:x = 0 2 3 4 7 9b = 4 8b = 6 11b = 7 13與For循環(huán)相關(guān)的其它規(guī)定:(1)For循環(huán)不能用For循環(huán)內(nèi)重新賦值循環(huán)變量n來終止。(2)For循環(huán)可以嵌套。(3)當(dāng)有一個(gè)等效的數(shù)組方法來解給定的問題時(shí),應(yīng)避免用For循環(huán)。例如, n=1:10; x=sin(n*pi/10) (4)為了得到最大的速度,在For循環(huán)(While循環(huán))被執(zhí)行之前,應(yīng)預(yù)先分配數(shù)組。例如,在For循環(huán)內(nèi)每執(zhí)行一次命令,變量x的大小增加1。迫使MATLAB每通過一次循環(huán)要花費(fèi)時(shí)間對x分配更多的內(nèi)存。為了消去這個(gè)步驟,F(xiàn)or循環(huán)的例子應(yīng)重寫為x=zeros(1,10); % preallocated memory for x for n=1:10 x(n)=sin(n*pi/10); end(2)while-end 循環(huán) 用于循環(huán)次數(shù)不能事先確定的,格式為 while 表達(dá)式 語句體 end 只有表達(dá)式為真,就執(zhí)行語句體,表達(dá)式為假,終止該循環(huán)。 說明:表達(dá)式可以是一個(gè)矩陣,且矩陣中的所有元素都為非0時(shí),才執(zhí)行循環(huán)體中的內(nèi)容。如果表達(dá)式為一空矩陣,則循環(huán)體中的內(nèi)容永遠(yuǎn)不會(huì)被執(zhí)行。 注意:要想在任何時(shí)候終止循環(huán)(for或while循環(huán)),可利用break語句。 num=1;a=0; while num5 % give 20% discount for larger purchases cost=(1-20/100)*cost; end costcost = 200 4.Switch分支結(jié)構(gòu)語句格式為 switch 表達(dá)式0 case 表達(dá)式1的值 命令1 case 表達(dá)式2的值 命令2. otherwise 命令行nend switch語句可以根據(jù)一個(gè)變量或表達(dá)式的值執(zhí)行特定的語句。先計(jì)算switch后邊表達(dá)式0的值,然后檢查case子句后面的值是否與表達(dá)式0的值相等,如表達(dá)式1的值與之相等,則執(zhí)行命令行1,否則繼續(xù)檢查第二個(gè)case子句,如果所有case子句的值都不等于表達(dá)式0的值,則執(zhí)行otherwise后面的命令行n。 在switch中,如果一個(gè)case條件滿足,執(zhí)行完這個(gè)case后,直接跳到end語句后面的語句,不在判斷其他case語句。5、return語句用來終止當(dāng)前正在執(zhí)行的函數(shù)中的命令,返回調(diào)用它的函數(shù)。 第4章 MATLAB多項(xiàng)式計(jì)算 4.1 多項(xiàng)式4.1.1 多項(xiàng)式的表示Matlab中用按降冪排列的多項(xiàng)式系數(shù)組成的行向量表示多項(xiàng)式,如:p(x)=x3-2x-5 被表示為:p = 1 0 2 5; 1多項(xiàng)式的加減運(yùn)算2多項(xiàng)式乘法運(yùn)算函數(shù)conv(P1,P2)用于求多項(xiàng)式P1和P2的乘積。這里,P1、P2是兩個(gè)多項(xiàng)式系數(shù)向量。例4-1 求多項(xiàng)式x4+8x3-10與多項(xiàng)式2x2-x+3的乘積3多項(xiàng)式除法 函數(shù)Q,r=deconv(P1,P2)用于對多項(xiàng)式P1和P2作除法運(yùn)算。其中Q返回多項(xiàng)式P1除以P2的商式,r返回P1除以P2的余式。這里,Q和r仍是多項(xiàng)式系數(shù)向量。deconv是conv的逆函數(shù),即有P1=conv(P2,Q)+r。例4-2 求多項(xiàng)式x4+8x3-10除以多項(xiàng)式2x2-x+3的結(jié)果。4.1.2 多項(xiàng)式的導(dǎo)數(shù)對多項(xiàng)式求導(dǎo)數(shù)的函數(shù)是:p=polyder(A):求多項(xiàng)式A的導(dǎo)函數(shù)p=polyder(A,B):求A與B積的導(dǎo)函數(shù)p,q=polyder(A,B):求A/B的導(dǎo)函數(shù),導(dǎo)函數(shù)的分子存入p,分母存入q。上述函數(shù)中,參數(shù)A,B是多項(xiàng)式的向量表示,結(jié)果p,q也是多項(xiàng)式的向量表示。例4-3 求有理分式的導(dǎo)數(shù)。命令如下:P=1;Q=1,0,5;p,q=polyder(P,Q)4.1.3 多項(xiàng)式的求值 兩種求多項(xiàng)式值的函數(shù): polyval(P,x) polyvalm(P,x) 兩者的區(qū)別在于前者是代數(shù)多項(xiàng)式求值,而后者是矩陣多項(xiàng)式求值。1代數(shù)多項(xiàng)式求值polyval函數(shù)用來求代數(shù)多項(xiàng)式的值,其調(diào)用格式為:Y=polyval(P,x)若x為一數(shù)值,則求多項(xiàng)式在該點(diǎn)的值;若x為向量或矩陣,則對向量或矩陣中的每個(gè)元素求其多項(xiàng)式的值。例4-4 已知多項(xiàng)式x4+8x3-10,分別取x=1.2和一個(gè)23矩陣為自變量計(jì)算該多項(xiàng)式的值。2矩陣多項(xiàng)式求值 polyvalm函數(shù)要求x為方陣,它以方陣為自變量求多項(xiàng)式的值。設(shè)A為方陣,P代表多項(xiàng)式x3-5x2+8,那么 polyvalm(P,A)的含義是: A*A*A-5*A*A+8*eye(size(A) 而polyval(P,A)的含義是: A.*A.*A-5*A.*A+8*ones(size(A)例4-5 仍以多項(xiàng)式x4+8x3-10為例,取一個(gè)22矩陣為自變量分別用polyval和polyvalm計(jì)算該多項(xiàng)式的值。4.1.4 多項(xiàng)式求根 n次多項(xiàng)式具有n個(gè)根,當(dāng)然這些根可能是實(shí)根,也可能含有若干對共軛復(fù)根。MATLAB提供的roots函數(shù)用于求多項(xiàng)式的全部根,其調(diào)用格式為: x=roots(P) 其中P為多項(xiàng)式的系數(shù)向量,求得的根賦給向量x,即x(1),x(2),x(n)分別代表多項(xiàng)式的n個(gè)根。 注意:根被儲(chǔ)存為列向量 例4-6 求多項(xiàng)式x4+8x3-10的根。命令如下:A=1,8,0,0,-10;x=roots(A)若已知多項(xiàng)式的全部根,則可以用poly函數(shù)建立起該多項(xiàng)式,其調(diào)用格式為:P=poly(x)若x為具有n個(gè)元素的向量,則poly(x)建立以x為其根的多項(xiàng)式,且將該多項(xiàng)式的系數(shù)賦給向量P。例4-7 已知 f(x)(1) 計(jì)算f(x)=0 的全部根。(2) 由方程f(x)=0的根構(gòu)造一個(gè)多項(xiàng)式g(x),并與f(x)進(jìn)行對比。命令如下:P=3,0,4,-5,-7.2,5;X=roots(P) %求方程f(x)=0的根G=poly(X) %求多項(xiàng)式g(x)4.1.5 多項(xiàng)式擬合p=polyfit(x,y,n):用最小二乘法對已知數(shù)據(jù)x,y進(jìn)行擬合,以求得n階多項(xiàng)式的系數(shù)向量; p,s=polyfit(x,y,n):p為返回的擬合后的多項(xiàng)式的系數(shù)向量,s為使用函數(shù)polyval獲得的錯(cuò)誤預(yù)估計(jì)值。 例4-8x=linspace(0,2*pi,100);y=sin(x);t=polyfit(x,y,6);y1=polyval(t,x);plot(x,y,ro,x,y1,b-) 4.2 數(shù)據(jù)插值4.2.1 一維數(shù)據(jù)插值 在MATLAB中,實(shí)現(xiàn)這些插值的函數(shù)是interp1,其調(diào)用格式為:Y1=interp1(X,Y,X1,method) 函數(shù)根據(jù)X,Y的值,計(jì)算函數(shù)在X1處的值。X,Y是兩個(gè)等長的已知向量,分別描述采樣點(diǎn)和樣本值,X1是一個(gè)向量或標(biāo)量,描述欲插值的點(diǎn),Y1是一個(gè)與X1等長的插值結(jié)果。 method是插值方法,允許的取值有 A 、nearest 尋找最近數(shù)據(jù)點(diǎn),由其得出函數(shù)值; B、linear 線性插值(該函數(shù)的默認(rèn)方法); C、spline 樣條插值,數(shù)據(jù)點(diǎn)處光滑-左導(dǎo)等于右導(dǎo); D、cubic 三次插值例4-9 某觀測站測得某日4:00時(shí)至18:00時(shí)之間每隔2小時(shí)的室內(nèi)外溫度(),用3次樣條插值分別求得該日室內(nèi)外4:30至17:30時(shí)之間每隔2小時(shí)各點(diǎn)的近似溫度()。 設(shè)時(shí)間變量h為一行向量,溫度變量t為一個(gè)兩列矩陣,其中第一列存放室內(nèi)溫度,第二列儲(chǔ)存室外溫度。命令如下:h =4:2:18;t=18,20,22,25,30,28,24,28; 17,18,19,24,27,23,23,25;XI =4.5:2:17.5YI=interp1(h,t,XI,spline) %用3次樣條插值計(jì)算4.2.2 二維數(shù)據(jù)插值 在MATLAB中,提供了解決二維插值問題的函數(shù)interp2,其調(diào)用格式為:Z1=interp2(X,Y,Z,X1,Y1,method) 其中X,Y是兩個(gè)向量,分別描述兩個(gè)參數(shù)的采樣點(diǎn),Z是與參數(shù)采樣點(diǎn)對應(yīng)的函數(shù)值,X1,Y1是兩個(gè)向量或標(biāo)量,描述欲插值的點(diǎn)。Z1是根據(jù)相應(yīng)的插值方法得到的插值結(jié)果。 A、nearest 尋找最近數(shù)據(jù)點(diǎn),由其得出函數(shù)值; B、linear 二維線性插值 C、cubic 二維三次插值例4-10 某實(shí)驗(yàn)對一根長10米的鋼軌進(jìn)行熱源的溫度傳播測試。用x表示測量點(diǎn)0:2.5:10(米),用h表示測量時(shí)間0:30:60(秒),用T表示測試所得各點(diǎn)的溫度()。試用線性插值求出在一分鐘內(nèi)每隔20秒、鋼軌每隔1米處的溫度TI。命令如下:x=0:2.5:10;h=0:30:60;T=95,14,0,0,0;88,48,32,12,4;47,44,54,48,41;xi=0:10;hi=0:20:40;TI=interp2(x,h,T,xi,hi)第5章 MATLAB統(tǒng)計(jì)函數(shù) 5.1 數(shù)據(jù)統(tǒng)計(jì)處理5.1.1 最大值和最小值MATLAB提供的求數(shù)據(jù)序列的最大值和最小值的函數(shù)分別為max和min,兩個(gè)函數(shù)的調(diào)用格式和操作過程類似。1求向量的最大值和最小值求一個(gè)向量X的最大值的函數(shù)有兩種調(diào)用格式,分別是:(1) y=max(X):返回向量X的最大值存入y,如果X中包含復(fù)數(shù)元素,則按模取最大值。(2) y,I=max(X):返回向量X的最大值存入y,最大值的序號存入I,如果X中包含復(fù)數(shù)元素,則按模取最大值。求向量X的最小值的函數(shù)是min(X),用法和max(X)完全相同。例5-1 求向量x的最大值。命令如下:x=-53,72,9,15,23,57;y=max(x) %求向量x中的最大值y,l=max(x) %求向量x中的最大值及其該元素的位置2求矩陣的最大值和最小值求矩陣A的最大值的函數(shù)有3種調(diào)用格式,分別是:(1) max(A):返回一個(gè)行向量,向量的第i個(gè)元素是矩陣A的第i列上的最大值。(2) Y,U=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號。(3) max(A,dim):dim取1或2。dim取1時(shí),該函數(shù)和max(A)完全相同;dim取2時(shí),該函數(shù)返回一個(gè)列向量,其第i個(gè)元素是A矩陣的第i行上的最大值。求最小值的函數(shù)是min,其用法和max完全相同。例5-2 分別求35矩陣x中各列和各行元素中的最大值,并求整個(gè)矩陣的最大值和最小值。3兩個(gè)向量或矩陣對應(yīng)元素的比較函數(shù)max和min還能對兩個(gè)同型的向量或矩陣進(jìn)行比較,調(diào)用格式為:(1) U=max(A,B):A,B是兩個(gè)同型的向量或矩陣,結(jié)果U是與A,B同型的向量或矩陣,U的每個(gè)元素等于A,B對應(yīng)元素的較大者。(2) U=max(A,n):n是一個(gè)標(biāo)量,結(jié)果U是與A同型的向量或矩陣,U的每個(gè)元素等于A對應(yīng)元素和n中的較大者。min函數(shù)的用法和max完全相同。例5-3 求兩個(gè)23矩陣x, y所有同一位置上的較大元素構(gòu)成的新矩陣p。5.1.2 求和與求積數(shù)據(jù)序列求和與求積的函數(shù)是sum和prod,其使用方法類似。設(shè)X是一個(gè)向
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國日光燈節(jié)電器市場調(diào)查研究報(bào)告
- 新疆工業(yè)職業(yè)技術(shù)學(xué)院《鋼結(jié)構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025-2030年中國二維碼識讀設(shè)備市場未來發(fā)展趨勢及投資戰(zhàn)略研究報(bào)告
- 2025至2031年中國純天然礦泉水行業(yè)投資前景及策略咨詢研究報(bào)告
- 肇慶市實(shí)驗(yàn)中學(xué)高中生物三:生長素的生理作用第課時(shí)導(dǎo)學(xué)案
- 肇慶市實(shí)驗(yàn)中學(xué)高中歷史一:第課從中日甲午戰(zhàn)爭到八國聯(lián)軍侵華教案
- 新疆農(nóng)業(yè)大學(xué)科學(xué)技術(shù)學(xué)院《生物學(xué)綜合(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025-2030家居生產(chǎn)行業(yè)市場發(fā)展分析及發(fā)展前景與投資機(jī)會(huì)研究報(bào)告
- 新疆職業(yè)大學(xué)《數(shù)字化義齒設(shè)計(jì)與加工》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025-2030年中國PVB樹脂行業(yè)發(fā)展現(xiàn)狀及投資可行性研究報(bào)告
- 電臺(tái)項(xiàng)目可行性研究報(bào)告
- 2025年度事業(yè)單位招聘考試公共基礎(chǔ)知識仿真模擬試卷及答案(共五套)
- 2025年廣西壯族自治區(qū)南寧市中考一模生物試題(含答案)
- SQLSERVER如何配置內(nèi)存提高性能配置方案
- 電視臺(tái)影視拍攝合同協(xié)議
- 裝配式建筑技術(shù)創(chuàng)新與可持續(xù)發(fā)展-全面剖析
- 裝飾公司結(jié)算管理制度
- 實(shí)習(xí)生頂崗實(shí)習(xí)安全教育
- MOOC 理解馬克思-南京大學(xué) 中國大學(xué)慕課答案
- YY∕T 1849-2022 重組膠原蛋白
評論
0/150
提交評論