第2章MATLAB簡介2014.3.1.ppt_第1頁
第2章MATLAB簡介2014.3.1.ppt_第2頁
第2章MATLAB簡介2014.3.1.ppt_第3頁
第2章MATLAB簡介2014.3.1.ppt_第4頁
第2章MATLAB簡介2014.3.1.ppt_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、,fpl,2.4 繪圖簡介,MATLAB提供了豐富的繪圖功能: help graph2d可得到所有畫二維圖形的命令 help graph3d可得到所有畫三維圖形的命令 下面介紹常用的二維圖形命令,1)基本繪圖指令plot plot(y) 當(dāng)y為向量時,以y的分量為縱坐標(biāo),以元素序號為橫坐標(biāo),用直線依次連接數(shù)據(jù)點,繪制曲線。 plot(x,y) 若y和x為同維向量,以x為橫坐標(biāo),以y為縱坐標(biāo)繪制連線圖。若x是向量,y是行數(shù)或列數(shù)與x的長度相等的矩陣,則繪制多條不同色彩的連線圖,x被作為這些曲線的共同坐標(biāo)。 plot(x,y1,x,y2,) 以公共的x元素為橫坐標(biāo),以y1,y2,y3,元素為縱坐標(biāo)

2、值繪制多條曲線。,Exp2-4-1:以向量y=(1,2,5,4.5,3,6,1)的各個分量為縱坐標(biāo),分量序號為橫坐標(biāo)繪制順序連接線。 解:輸入命令 y=1 2 5 4.5 3 6 1; plot(y),Exp2-4-2: %plot繪圖命令的使用 clc %清屏命令 clear %清除工作空間中所有變量 %定義時間范圍 t=0:pi/20:9*pi; y1=sin(t); y2=cos(t); plot(t,y1,t,y2),Exp2-4-3: %plot繪圖命令的使用 close all %關(guān)閉打開的所有圖形窗口 clc %清屏命令 clear %清除工作空間中所有變量 %定義時間范圍 t=

3、0:pi/20:8*pi; y=sin(t); plot(t,y,b:square),% r表示線的顏色為紅色,此外 y(黃色)g(綠色)b(藍(lán)色) % w(白色) k(黑色) m (紫色)c(青色) % -.表示線型為點劃線,此外 -(實線):(虛線)-(破折線) % *表示標(biāo)示符號為星號,此外 +(正號) o(圓形字母) % x(交叉字母)square(方形).(點),2) 選擇圖像 figure(1);figure(2);figure(n) 打開不同的圖形窗口,以便繪制不同的圖形。,3) grid on:在所畫出的圖形坐標(biāo)中加入柵格 grid off:除去圖形坐標(biāo)中的柵格,4) hold

4、 on:把當(dāng)前圖形保持在屏幕上不變,同時 允許在這個坐標(biāo)內(nèi)繪制另外一個圖形。 hold off:使新圖覆蓋舊的圖形,exp2-4-4:柵格的添加與刪除 close all clc clear %定義時間范圍 t=0:pi/20:9*pi; figure(1) %選擇圖像 plot(t,sin(t),r:*) %紅色,虛線,星號 grid on %在所畫出的圖形坐標(biāo)中添加?xùn)鸥?,注意用在plot之后 figure(2) grid off %刪除柵格 plot(t,cos(t),exp2-4-5:hold on和hold off 的使用 close all clc clear %定義時間范圍 t=0

5、:pi/20:9*pi; hold on %允許在同一坐標(biāo)系下繪制不同的圖形 plot(t,sin(t),r:*) plot(t,cos(t) plot(t,-cos(t),k) grid on %在所畫出的圖形坐標(biāo)中添加?xùn)鸥瘢⒁庥迷趐lot之后 hold off %覆蓋舊圖 plot(t,-sin(t) grid off %刪除柵格,6) 文字標(biāo)示 text(x,y,字符串) 在圖形的指定坐標(biāo)位置(x,y)處,標(biāo)示單引號括起來的字符串。 gtext(字符串) 利用鼠標(biāo)在圖形的某一位置標(biāo)示字符串。 title(字符串) 在所畫圖形的最上端顯示說明該圖形標(biāo)題的字符串。 xlabel(字符串),

6、ylabel(字符串) 設(shè)置x,y坐標(biāo)軸的名稱。 輸入特殊的文字需要用反斜杠()開頭。 legend(字符串1,字符串2,字符串n) 在屏幕上開啟一個小視窗,然后依據(jù)繪圖命令的先后次序,用對應(yīng)的字符串區(qū)分圖形上的線。,5) 設(shè)定軸的范圍 axis(xmin xmax ymin ymax) axis(equal):將x坐標(biāo)軸和y坐標(biāo)軸的單位刻度大小調(diào)整為一樣。,exp2-4-6: x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) grid on %添加網(wǎng)格 xlabel(x軸) %橫坐標(biāo)名 ylabel(y軸) %縱坐標(biāo)名 title(正

7、弦函數(shù)和余弦函數(shù)曲線) %標(biāo)題 text(1.5,0.3,cos(x) %指定位置標(biāo)注 gtext(sin(x) %用鼠標(biāo)選擇位置標(biāo)注 axis(0 2*pi -1.2 1.2) %設(shè)置坐標(biāo)軸的最大最小值,對于圖形的屬性編輯同樣可以通過在圖形窗口上直接進(jìn)行。 但圖形窗口關(guān)閉之后編輯結(jié)果不會保存,指出: 顏色、線型、標(biāo)記三種屬性的符號必須放在同一個字符串內(nèi)。 屬性的先后順序沒有關(guān)系,可以只指定一兩個屬性,也可以全部缺省,但同種屬性不能同時指定兩個。 顏色缺省為藍(lán)色。 點、線標(biāo)識符缺省為實線。 屬性間不用間隔。,(1) 和二維圖形相對應(yīng),MATLAB提供了一個三維曲 線繪制命令plot3,它的應(yīng)用

8、和plot類似,只是多了z方向的數(shù)據(jù)。 exp2-3-7:繪制一條三維曲線。 clear clc z=0:pi/50:10*pi; x=sin(z); y=cos(z); plot3(x,y,z),7) 三維圖形的繪制,三維圖形(續(xù)),(2)繪制三維曲面的命令則有mesh(x,y,z)或surf(x,y,z)。它們的區(qū)別在于,前者繪制出的是一個用網(wǎng)格近似的曲面,后者繪制出的是一個真正表面圖。 exp2-3-8:繪制多峰函數(shù)圖。 z=peaks(40); mesh(z); surf(z);,1)MATLBA程序的基本設(shè)計原則,(1) 后面的內(nèi)容是程序的注解,要善于運(yùn)用注解使程序更具可讀性。 (2

9、) 養(yǎng)成在主程序開頭用clear指令清除變量的習(xí)慣,以消除工作空間中其他變量對程序運(yùn)行的影響。但注意在子程序中不要用clear。 (3) 參數(shù)值要集中放在程序的開始部分,以便維護(hù)。要充分利用MATLAB工具箱提供的指令來執(zhí)行所要進(jìn)行的運(yùn)算,在語句行之后輸入分號使其及中間結(jié)果不在屏幕上顯示,以提高執(zhí)行速度。 (4) input指令可以用來輸入一些臨時的數(shù)據(jù);而對于大量參數(shù),則通過建立一個存儲參數(shù)的子程序,在主程序中用子程序的名稱來調(diào)用。 (5) 程序盡量模塊化,也就是采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來執(zhí)行全部的操作。 (6) 充分利用Debugger來進(jìn)行程序的調(diào)試(設(shè)置斷點、

10、單步執(zhí)行、連續(xù)執(zhí)行),并利用其他工具箱或圖形用戶界面(GUI)的設(shè)計技巧,將設(shè)計結(jié)果集成到一起。 (7) 設(shè)置好MATLAB的工作路徑,以便程序運(yùn)行。,2.5MATLAB程序設(shè)計入門,(8) MATLAB程序的基本組成結(jié)構(gòu) 說明 清除命令:清除workspace中的變量和圖形(clear,close) 定義變量:包括全局變量的聲明及參數(shù)值的設(shè)定 逐行執(zhí)行命令:指MATLAB提供的運(yùn)算指令或工具箱 提供的專用命令 控制循環(huán) :包含for,if then,switch,while等語句 逐行執(zhí)行命令 end 繪圖命令:將運(yùn)算結(jié)果繪制出來 當(dāng)然更復(fù)雜程序還需要調(diào)用子程序,或與simulink以及其他

11、應(yīng)用程序結(jié)合起來。,進(jìn)入MATLAB的Editor/Debugger窗口來編輯程序 在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同屬性。 綠色:注解;黑色:程序主體;紅色:屬性值的設(shè)定;藍(lán)色:控制流程。 在運(yùn)行程序之前,必須設(shè)置好MATLAB的工作路徑,使得所要運(yùn)行的程序及運(yùn)行程序所需要的其他文件處在當(dāng)前目錄之下,只有這樣,才可以使程序得以正常運(yùn)行。否則可能導(dǎo)致無法讀取某些系統(tǒng)文件或數(shù)據(jù),從而程序無法執(zhí)行。 通過cd指令在命令窗口中可以更改、顯示當(dāng)前工作路徑。 通過路徑瀏覽器(path browser)也可以進(jìn)行設(shè)置,2)M文件的編輯及MATLAB工作路徑的設(shè)置,(2) 程序文件 以.m格式進(jìn)

12、行存取,包含一連串的MATLAB指令和必要的注解。需要在工作空間中創(chuàng)建并獲取變量,也就是說處理的數(shù)據(jù)為命令窗口中的數(shù)據(jù),沒有輸入?yún)?shù),也不會返回參數(shù)。 程序運(yùn)行時只需在工作空間中鍵入其名稱即可。,3)MATLAB的程序類型,MATLAB的程序類型有三種,一種是在命令窗口下執(zhí)行的腳本M文件;另外一種是可以存取的M文件,也即程序文件;最后一種是函數(shù)(function)文件。,(1) 腳本M文件 在命令窗口中輸入并執(zhí)行,它所用的變量都要在工作空間中獲取,不需要輸入輸出參數(shù)的調(diào)用,退出MATLAB后就釋放了。,函數(shù)定義行(關(guān)鍵字function) functionout1,out2,.=filenam

13、e(in1,in2,.) 輸入和輸出(返回)的參數(shù)個數(shù)分別由nargin和nargout兩個MATLAB保留的變量來給出。 第一行幫助行,即H1行 以(%)開頭,作為lookfor指令搜索的行 函數(shù)體說明及有關(guān)注解 以(%)開頭,用以說明函數(shù)的作用及有關(guān)內(nèi)容 如果不希望顯示某段信息,可在它的前面加空行 函數(shù)體語句 函數(shù)體內(nèi)使用的除返回和輸入變量這些在function語句中直接引用的變量以外的所有變量都是局部變量,即在該函數(shù)返回之后,這些變量會自動在MATLAB的工作空間中清除掉。如果希望這些中間變量成為在整個程序中都起作用的變量,則可以將它們設(shè)置為全局變量。,(3) 函數(shù)文件,與在命令窗口中輸

14、入命令一樣,函數(shù)接受輸入?yún)?shù),然后執(zhí)行并輸出結(jié)果。用help命令可以顯示它的注釋說明。 具有標(biāo)準(zhǔn)的基本結(jié)構(gòu)。,functionA,B=myhilb(n,m) %問題:生成一個Hilbert矩陣,該矩陣是一個nm矩陣,它的第i行 %第j列的元素為1/(i+j-1)。如果想在編寫的函數(shù)中實現(xiàn)下面幾點: %1)如果只給出一個輸入?yún)?shù),則會自動生成一個方陣,即有m=n %2)如果想返回兩個參數(shù)A和B,則返回的B矩陣為A矩陣的平方, % 即B=AA %3)在函數(shù)中給出合適的幫助信息,包括基本功能、調(diào)用方式 % 和參數(shù)說明 if nargin=1,m=n;end for i=1:n for j=1:m A

15、(i,j)=1/(i+j-1); end end if (nargout=2),B=A*A;end,(1) 子程序與主程序之間的數(shù)據(jù)是通過參數(shù)進(jìn)行傳遞的,子程序應(yīng)用主程序傳遞來的參數(shù)進(jìn)行計算后,將結(jié)果返回主程序。 例exp2_5_3.m,4)聲明子程序(函數(shù)程序)變量,(2) 如果一個函數(shù)內(nèi)的變量沒有特別聲明,那么這個變量只在函數(shù)內(nèi)部使用,即為局部變量。如果兩個或多個函數(shù)共用一個變量(或者說在子程序中也要用到主程序中的變量,注意不是參數(shù)),那么可以用global來將它聲明為全局變量。 例exp2_5_4.m 全局變量的使用可以減少參數(shù)傳遞,合理利用全局變量可以提高程序執(zhí)行的效率。,%主程序 a

16、=input(please input value of a=); b=input(please input value of b=); c=sumhe(a,b) % 在此例中,主程序設(shè)定了兩個參數(shù)a和b來調(diào)用 % 子程序sumhe.m(為一個函數(shù)文件), % 所以執(zhí)行主程序時,子程序就會調(diào)用主程序傳遞過來的 % a和b值進(jìn)行計算,再將結(jié)果返回主程序。 %子程序sumhe.m % function result=sumhe(a,b) % sumhe(a,b) sum the serial of numbers from a tob % result=sum(a:b);,%主程序 global

17、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,以便在子程序中可以 %使用主程序中定義的變量,exp2_5_3.m,exp2_5_4.m,字符串要用單引號并用括號括在里面。如: disp(text string) disp字符串顯示命令 text string,5)字符串,在單引號里邊的字符串可以作為矢量或矩陣的元素。使用disp命令或輸入變量名就可以顯示它們表示的字

18、符串。如: a=this is a;text string ? All rows in the bracketed expression must have the same number of columns.(元素1含9個字符,包括空格;元素2含有11個字符;因此只要在元素1中加入2個空格即可解決問題) aa=this is a ;text string disp(aa) aa = aa= this is a this is a text string text string,6)常用的編程命令,pause:停止m文件的執(zhí)行直至有鍵按下。pause(n)將使程序暫停n秒。 echo on/

19、off:控制是否在屏幕上顯示程序內(nèi)容。 keyboard:停止程序執(zhí)行,把控制權(quán)交給鍵盤。輸入return并回車后繼續(xù)程序執(zhí)行。 x=input(prompt):把輸入的字符串作為提示符,等待使用者輸入一個響應(yīng),然后把它賦值到x。,步長缺省值為1,可以在正實數(shù)或負(fù)實數(shù)范圍內(nèi)任意指定。對于正數(shù),循環(huán)變量的值大于終止值時,循環(huán)結(jié)束;對于負(fù)數(shù),循環(huán)變量的值小于終止值時,循環(huán)結(jié)束。循環(huán)結(jié)構(gòu)可以嵌套使用。 書寫格式不必太過于拘泥,在Editor編輯器中會自動進(jìn)行處理。,7)程序流程控制,(1) for循環(huán)語句 基本格式: for 循環(huán)變量起始值:步長:終止值 循環(huán)體 end,(2) while循環(huán)語句 基本格式 while 表達(dá)式 循環(huán)體 end,若表達(dá)式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否為真,若不為真,則跳出循環(huán)體,向下繼續(xù)執(zhí)行。,While循環(huán)和for循環(huán)的區(qū)別在于,while循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的次數(shù)不是確定的,而for結(jié)構(gòu)中循環(huán)體的執(zhí)行次數(shù)是確定的。,(3) if,else,elseif語句 if 邏輯表達(dá)式 執(zhí)行語句 end,當(dāng)邏輯表達(dá)式的值為真時,執(zhí)行該結(jié)構(gòu)中的執(zhí)行語句,執(zhí)行完之后繼續(xù)向下進(jìn)行;若為假,則跳過結(jié)構(gòu)中的內(nèi)容,向下執(zhí)行。, if 邏輯表達(dá)式 if 邏輯表達(dá)式1 執(zhí)行語句1 執(zhí)行語句1 else elseif 邏輯表達(dá)式2 執(zhí)行語句2 執(zhí)行語

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論