版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、.MATLAB軟 件 基 礎1 MATLAB 概述MATLAB 是MATrix LABoratory(“矩陣實驗室”)的縮寫,是由美國MathWorks 公司開發(fā)的集數(shù)值計算、符號計算和圖形可視化三大基本功能于一體的,功能強大、操作簡單的語言。是國際公認的優(yōu)秀數(shù)學應用軟件之一。20世紀80年代初期,Cleve Moler與John Little等利用C語言開發(fā)了新一代的MATLAB語言,此時的MATLAB語言已同時具備了數(shù)值計算功能和簡單的圖形處理功能。1984年,Cleve Moler與John Little等正式成立了Mathworks公司,把MATLAB語言推向市場,并開始了對MATLA
2、B工具箱等的開發(fā)設計。1993年,Mathworks公司推出了基于個人計算機的MATLAB 4.0版本,到了1997年又推出了MATLAB 5.X版本(Release 11),并在2000年又推出了最新的MATLAB 6版本(Release 12)?,F(xiàn)在,MATLAB已經(jīng)發(fā)展成為適合多學科的大型軟件,在世界各高校,MATLAB已經(jīng)成為線性代數(shù)、數(shù)值分析、數(shù)理統(tǒng)計、優(yōu)化方法、自動控制、數(shù)字信號處理、動態(tài)系統(tǒng)仿真等高級課程的基本教學工具。特別是最近幾年,MATLAB在我國大學生數(shù)學建模競賽中的應用,為參賽者在有限的時間內(nèi)準確、有效的解決問題提供了有力的保證。2 MATLAB的安裝與啟動2.1 MA
3、TLAB的安裝要用MATLAB 6,首先必須在計算機上安裝MATLAB 6應用軟件,隨著軟件功能的不斷完善,MATLAB對計算機系統(tǒng)配置的要求越來越高。下面給出安裝和運行MATLAB 6 所需要的計算機系統(tǒng)配置。 MATLAB 6對硬件的要求CPU要求:Pentium II、Pentium III、AMD Athlon或者更高;光驅(qū):8倍速以上;內(nèi)存:至少64MB,但推薦128MB以上;硬盤:視安裝方式不同要求不統(tǒng)一,但至少留1GB用于安裝(安裝后未必有1GB);顯卡:8位; MATLAB 6對軟件的要求Windows95 、Window98、Windows NT或Windows2000;Wo
4、rd97或word2000等,用于使用MATLAB Notebook;Adobe Acrobat Reader 用于閱讀MATLAB的PDF的幫助信息。MATLAB 6的安裝和其它應用軟件類似,可按照安裝向?qū)нM行安裝,這里不再贅述。2.2 MATLAB的啟動和退出與常規(guī)的應用軟件相同,MATLAB的啟動也有多種方式,首先常用的方法就是雙擊桌面的MATLAB圖標,也可以在開始菜單的程序選項中選擇MATLAB組件中的快捷方式,當然也可以在MATLAB的安裝路徑的子目錄中選擇可執(zhí)行文件“MATLAB.exe”。 啟動MATLAB后,將打開一個MATLAB的歡迎界面,隨后打開MATLAB的桌面系統(tǒng)(D
5、esktop)如圖2-1所示。圖2-1 MATLAB的桌面系統(tǒng)3 MATLAB的開發(fā)環(huán)境MATLAB的開發(fā)環(huán)境就是在使用MATLAB的過程中可激活的,并且為用戶使用提供支持的集成系統(tǒng)。這里介紹幾個比較重要的如:桌面平臺系統(tǒng)、幫助系統(tǒng)和數(shù)據(jù)交換系統(tǒng)。3.1 MATLAB桌面平臺桌面平臺是各桌面組件的展示平臺,默認設置情況下的桌面平臺包括6個窗口,具體如下:3.1.1 MATLAB主窗口MATLAB6比早期版本增加了一個主窗口。該窗口不能進行任何計算任務的操作,只用來進行一些整體的環(huán)境參數(shù)的設置。3.1.2 命令窗口(Command Window)命令窗口是對MATLAB進行操作的主要載體,默認的
6、情況下,啟動MATLAB時就會打開命令窗口,顯示形式如圖1-1所示。一般來說,MATLAB的所有函數(shù)和命令都可以在命令窗口中執(zhí)行。在MATLAB命令窗口中,命令的實現(xiàn)不僅可以由菜單操作來實現(xiàn),也可以由命令行操作來執(zhí)行,下面就詳細介紹MALTAB命令行操作。實際上,掌握MALAB命令行操作是走入MATLAB世界的第一步,命令行操作實現(xiàn)了對程序設計而言簡單而又重要的人機交互,通過對命令行操作,避免了編程序的麻煩,體現(xiàn)了MATLAB所特有的靈活性。1. 命令窗口的作用 命令窗口用于輸入命令和顯示計算結(jié)果。2. 命令行的輸入規(guī)則 一個命令行輸入一條命令,命令行以回車結(jié)束。 一個命令行也可以輸入若干條命
7、令,各命令之間以逗號分隔,若前一命令后帶有分號,則逗號可以省略。 如果一個命令行很長,要加續(xù)行符(三個小黑點)。3. 命令行的編輯4. 常用操作系統(tǒng)命令例如:在命令窗口中輸入sin(pi/5),然后單擊回車鍵,則會得到該表達式的值sin(pi/5)ans=0.5878由例可以看出,為求得表達式的值,只需按照MALAB語言規(guī)則將表達式輸入即可,結(jié)果會自動返回,而不必像其他的程序設計語言那樣,編制冗長的程序來執(zhí)行。當需要處理相當繁瑣的計算時,可能在一行之內(nèi)無法寫完表達式,可以換行表示,此時需要使用續(xù)行符“”否則MATLAB將只計算一行的值,而不理會該行是否已輸入完畢。例如:sin(1/9*pi)+
8、sin(2/9*pi)+sin(3/9*pi)+sin(4/9*pi)+sin(5/9*pi)+sin(6/9*pi)+sin(7/9*pi)+sin(8/9*pi)+sin(9/9*pi)+ans=5.6713使用續(xù)行符之后MATLAB會自動將前一行保留而不加以計算,并與下一行銜接,等待完整輸入后再計算整個輸入的結(jié)果。在MATLAB命令行操作中,有一些鍵盤按鍵可以提供特殊而方便的編輯操作。比如:“”可用于調(diào)出前一個命令行,“”可調(diào)出后一個命令行,避免了重新輸入的麻煩。當然下面即將講到的歷史窗口也具有此功能。3.1.3 歷史窗口(Command History)歷史命令窗口是MATLAB6新增
9、添的一個用戶界面窗口,默認設置下歷史命令窗口會保留自安裝時起所有命令的歷史記錄,并標明使用時間,以方便使用者的查詢。而且雙擊某一行命令,即在命令窗口中執(zhí)行該命令。3.1.4 發(fā)行說明書窗口(Launch Pad)發(fā)行說明書窗口是MATLAB6所特有的,用來說明用戶所擁有的Mathworks公司產(chǎn)品的工具包、演示以及幫助信息。當選中該窗口中的某個組件之后,可以打開相應的窗口工具包。3.1.5 當前目錄窗口(Current Directory )在當前目錄窗口中可顯示或改變當前目錄,還可以顯示當前目錄下的文件,包括文件名、文件類型、最后修改時間以及該文件的說明信息等并提供搜索功能。3.1.6 工作
10、空間管理窗口(Workspace)工作空間管理窗口是MATLAB的重要組成部分。在工作空間管理窗口中將顯示所有目前保存在內(nèi)存中的MATLAB變量的變量名、數(shù)據(jù)結(jié)構(gòu)、字節(jié)數(shù)以及類型,而不同的變量類型分別對應不同的變量名圖標。3.2 MATLAB幫助系統(tǒng)完善的幫助系統(tǒng)是任何應用軟件必要的組成部分。MATLAB提供了相當豐富的幫助信息,同時也提供了獲得幫助的方法。首先,可以通過桌面平臺的【Help】菜單來獲得幫助,也可以通過工具欄的幫助選項獲得幫助。此外,MATLAB也提供了在命令窗口中的獲得幫助的多種方法,在命令窗口中獲得MATLAB幫助的命令。3.3 MATLAB功能演示例1.1 求解線性方程組
11、 命令如下: a=2,3,-1;8,2,3;45,3,9; b=2;4;23; x=inv(a)*b 例1.2 繪制正弦曲線和余弦曲線。 命令如下: x=0:0.5:360*pi/180; plot(x,sin(x),x,cos(x) ; 例1.3 輸入10個學生的成績并對成績按升序排序。 在MATLAB命令窗口輸入: g=input(請輸入學生成績:); g=sort(g) 例1.4 設有常微分方程初值問題,試求其數(shù)值解,并與精確解相比較。 (1)建立函數(shù)文件funt.m: function yp=funt(t,y) yp=(y2-t-2)/4/(t+1); (2)求解微分方程: t0=0;
12、tf=10;y0=2; t,y=ode23(funt,t0,tf,y0); y1=sqrt(t+1)+1; t4 MATLAB數(shù)值計算功能MATLAB強大的數(shù)值計算功能使其在諸多數(shù)學計算軟件中傲視群雄,是MATLAB軟件的基礎。本節(jié)將簡要介紹MATLAB的數(shù)據(jù)類型、矩陣的建立及運算。4.1 MATLAB 數(shù)據(jù)類型MATLAB數(shù)據(jù)類型v 數(shù)值數(shù)據(jù):雙精度型、單精度數(shù)、帶符號整數(shù)和無符號整數(shù)。v 字符數(shù)據(jù)。v 結(jié)構(gòu)(Structure)和單元(Cell)。多維矩陣和稀疏矩陣(Sparse)。4.1.1 變量與常量變量是任何程序設計語言的基本要素之一,MATLAB語言當然也不例外。與常規(guī)的程序設計語
13、言不同的MATLAB并不要求事先對所使用的變量進行聲明,也不需要指定變量類型,MATLAB語言會自動依據(jù)所賦予變量的值或?qū)ψ兞克M行的操作來識別變量的類型。在賦值過程中如果賦值變量已存在時,MATLAB語言將使用新值代替舊值,并以新值類型代替舊值類型。在MATLAB語言中變量的命名應遵循如下規(guī)則:(1)變量名區(qū)分大小寫。(2)變量名長度不超31位,第31個字符之后的字符將被MATLAB語言所忽略。(3)變量名以字母開頭,可以是字母、數(shù)字、下劃線組成,但不能使用標點。MATLAB語言本身也具有一些預定義的變量,這些特殊的變量稱為常量。表4-1給出了MATLAB語言中經(jīng)常使用的一些常量值。表4-1
14、 常 量 表 示 數(shù) 值 pi圓周率 eps浮點運算的相對精度 inf正無窮大 NaN表示不定值 realmax最大的浮點數(shù) i, j虛數(shù)單位在MATLAB語言中,定義變量時應避免與常量名重復,以防改變這些常量的值,如果已改變了某外常量的值,可以通過“clear+常量名”命令恢復該常量的初始設定值(當然,也可通過重新啟動MATLAB系統(tǒng)來恢復這些常量值)。4.1.2 數(shù)字變量的運算及顯示格式MALAB是以矩陣為基本運算單元的,而構(gòu)成數(shù)值矩陣的基本單元是數(shù)字。為了更好地學習和掌握矩陣的運算,首先對數(shù)字的基本知識作簡單的介紹。對于簡單的數(shù)字運算,可以直接在命令窗口中以平常慣用的形式輸入,如計算2和
15、3的乘積再加1時,可以直接輸入: 1+2*3ans= 7這里“ans”是指當前的計算結(jié)果,若計算時用戶沒有對表達式設定變量,系統(tǒng)就自動賦當前結(jié)果給“ans”變量。用戶也可以輸入: a=1+2*3a= 7此時系統(tǒng)就把計算結(jié)果賦給指定的變量a了。數(shù)據(jù)的輸出格式MATLAB語言中數(shù)值有多種顯示形式,在缺省情況下,若數(shù)據(jù)為整數(shù),則就以整數(shù)表示;若數(shù)據(jù)為實數(shù),則以保留小數(shù)點后4位的精度近似表示。MATLAB語言提供了10種數(shù)據(jù)顯示格式,常用的有下述幾種格式:short 小數(shù)點后4位(系統(tǒng)默認值)long 小數(shù)點后14位short e 5位指數(shù)形式long e 15位指數(shù)形式MATLAB語言還提供了復數(shù)的
16、表達和運算功能。在MATLAB語言中,復數(shù)的基本單位表示為i或j。在表達簡單數(shù)數(shù)值時虛部的數(shù)值與i、j之間可以不使用乘號,但是如果是表達式,則必須使用乘號以識別虛部符號。4.1.3賦值語句MATLAB賦值語句有兩種格式:(1) 變量=表達式 (2) 表達式 一般地,運算結(jié)果在命令窗口中顯示出來。如果在語句的最后加分號,那么,MATLAB僅僅執(zhí)行賦值操作,不再顯示運算的結(jié)果。 在MATLAB語句后面可以加上注釋,注釋以%開頭,后面是注釋的內(nèi)容。 例2.1 計算表達式的值,并將結(jié)果賦給變量x,然后顯示出結(jié)果。 在MATLAB命令窗口輸入命令: x=(5+cos(47*pi/180)/(1+sqrt
17、(7)-2*i) %計算表達式的值4.2 矩陣及其運算 矩陣是MATLAB數(shù)據(jù)存儲的基本單元,而矩陣的運算是MATLAB語言的核心,在MATLAB語言系統(tǒng)中幾乎一切運算均是以對矩陣的操作為基礎的。下面重點介紹矩陣的生成、矩陣的基本運算和矩陣的數(shù)組運算。4.2.1 矩陣的生成1. 直接輸入法從鍵盤上直接輸入矩陣是最方便、最常用的創(chuàng)建數(shù)值矩陣的方法,尤其適合較小的簡單矩陣。在用此方法創(chuàng)建矩陣時,應當注意以下幾點: 輸入矩陣時要以“ ”為其標識符號,矩陣的所有元素必須都在括號內(nèi)。 矩陣同行元素之間由空格或逗號分隔,行與行之間用分號或回車鍵分隔。 矩陣大小不需要預先定義。 矩陣元素可以是運算表達式。
18、若“ ”中無元素表示空矩陣。 2. 利用M文件建立矩陣 對于比較大且比較復雜的矩陣,可以為它專門建立一個M文件。 例2.2 利用M文件建立MYMAT矩陣。 (1)啟動有關編輯程序或MATLAB文本編輯器,并輸入待建矩陣. (2)把輸入的內(nèi)容以純文本方式存盤(設文件名為mymatrix.m)。 (3)運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用。3. 利用MATLAB函數(shù)建立矩陣常用的有下面幾個:zeros(m) 生成m階全0矩陣eye(m) 生成m階單位矩陣ones(m) 生成m階全1矩陣rand(m) 生成m階均勻分布的隨機陣 randn(m) 生成m階正態(tài)分布的隨機矩陣
19、 這幾個函數(shù)的調(diào)用格式相似,下面以產(chǎn)生零矩陣的zeros函數(shù)為例進行說明。其調(diào)用格式是: zeros(m) 產(chǎn)生mm零矩陣 zeros(m,n) 產(chǎn)生mn零矩陣。 zeros(size(A) 產(chǎn)生與矩陣A同樣大小的零矩陣 相關的函數(shù)有:length(A)給出行數(shù)和列數(shù)中的較大者,即length(A)=max(size(A);ndims(A)給出A的維數(shù)。例2.3 分別建立33、32和與矩陣A同樣大小的零矩陣。(1)建立一個33零矩陣:zeros(3)(2)建立一個32零矩陣:zeros(3,2)(3)建立與矩陣A同樣大小零矩陣:zeros(size(A) 此外,常用的函數(shù)還有reshape(A
20、,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。 4. 建立大矩陣 大矩陣可由方括號中的小矩陣建立起來。例如 A=1 2 3;4 5 6;7 8 9; C=A,eye(size(A); ones(size(A),A2.3.2 冒號表達式 冒號表達式的一般格式: e1:e2:e3 還可以用linspace函數(shù)產(chǎn)生行向量:linspace(a,b,n) linspace(a,b,n)與a:(b-a)/(n-1):b等價。例如: a=1:0.5:4a= Columns through 7 1 1.5 2 2.5 3 3.5 42.3.3 矩陣的拆分1. 矩陣元素 MATL
21、AB允許用戶對一個矩陣的單個元素進行賦值和操作。例如 A(3,2)=200 也可以采用矩陣元素的序號來引用矩陣元素。矩陣元素按列編號,先第一列,再第二列,依次類推。 以mn矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。2. 矩陣拆分 (1)利用冒號表達式獲得子矩陣 A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。 A(i:i+m,:)表示取A矩陣第ii+m行的全部元素;A(:,k:k+m)表示取A矩陣第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第ii+m行內(nèi),并在第kk+m列中的所
22、有元素。 其次,通過使用冒號,可以截取指定矩陣中的部分。例如: A=1 2 3;4 5 6;7 8 9 A= 1 2 3 4 5 6 7 8 9 B=A (1:2, : )B= 1 2 3 4 5 6通過上例可以看到B是由矩陣A的1到2行和相應的所有列的元素構(gòu)成的一個新的矩陣。在這里,冒號代替了矩陣A的所有列。 (2)利用空矩陣刪除矩陣的元素 在MATLAB中,定義為空矩陣。給變量X賦空矩陣的語句為X=。 注意,X=與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間,只是維數(shù)為0。將某些元素從矩陣中刪除,采用將其置為空矩陣的方法就是一種有效的方法。4.2.2 矩陣
23、的基本數(shù)學運算矩陣的基本數(shù)學運算包括矩陣的四則運算、與常數(shù)的運算、逆運算、行列式運算、秩運算、特征值運算等基本函數(shù)運算,這里進行簡單介紹。算術運算 1. 基本算術運算MATLAB的基本算術運算有:(加)、(減)、*(乘)、/(右除)、(左除)、(乘方)。矩陣的加、減、乘運算符分別為“+,*” ,用法與數(shù)字運算幾乎相同,但計算時要滿足其數(shù)學要求(如:同型矩陣才可以加、減)。在MATLAB中矩陣的除法有兩種形式:左除“”和右除“/”。在傳統(tǒng)的MATLAB算法中,右除是先計算矩陣的逆再相乘,而左除則不需要計算逆矩陣直接進行除運算。通常右除要快一點,但左除可避免被除矩陣的奇異性所帶來的麻煩。在MATL
24、AB6中兩者的區(qū)別不太大。 注意:運算是在矩陣意義下進行的,單個數(shù)據(jù)的算術運算只是一種特例。2.與常數(shù)的運算 常數(shù)與矩陣的運算即是同該矩陣的每一元素進行運算。但需注意進行數(shù)除時,常數(shù)通常只能做除數(shù)。 3MATLAB常用數(shù)學函數(shù)矩陣的函數(shù)運算是矩陣運算中最實用的部分,常用的主要有以下幾個:det(a) 求矩陣a的行列式eig(a) 求矩陣a的特征值inv(a)或a (-1) 求矩陣a的逆矩陣rank(a) 求矩陣a的秩trace(a) 求矩陣a的跡(對角線元素之和)例如: a=2 1 3 1; 3 1 0 7; -1 2 4 2; 1 0 1 5; a1=det(a); a2=det(inv(a
25、); a1*a2 ans= 14.2.2 矩陣的數(shù)組運算我們在進行工程計算時常常遇到矩陣對應元素之間的運算。這種運算不同于前面講的數(shù)學運算,為有所區(qū)別,我們稱之為數(shù)組運算(點運算).1 基本數(shù)學運算數(shù)組的加、減與矩陣的加、減運算完全相同。而乘除法運算有相當大的區(qū)別,數(shù)組的乘除法是指兩同維數(shù)組對應元素之間的乘除法,它們的運算符為“.*”和“./”或“.”。前面講過常數(shù)與矩陣的除法運算中常數(shù)只能做除數(shù)。在數(shù)組運算中有了“對應關系”的規(guī)定,數(shù)組與常數(shù)之間的除法運算沒有任何限制。另外,矩陣的數(shù)組運算中還有冪運算(運算符為 . )、指數(shù)運算(exp)、對數(shù)運算(log)、和開方運算(sqrt)等。有了“
26、對應元素”的規(guī)定,數(shù)組的運算實質(zhì)上就是針對數(shù)組內(nèi)部的每個元素進行的。點運算符有.*、./、.和.。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數(shù)相同。例如: a=2 1 -3 -1; 3 1 0 7; -1 2 4 -2; 1 0 -1 5; a3 ans=32 -28 -101 3499 -12 -151 239-1 49 93 851 -17 -98 139 a .3 ans=8 1 -27 -127 1 0 343-1 8 64 -8 1 0 -1 125由上例可見矩陣的冪運算與數(shù)組的冪運算有很大的區(qū)別。2邏輯關系運算 邏輯運算是MATLAB中數(shù)組運算所特有的一種運算
27、形式,也是幾乎所有的高級語言普遍適用的一種運算。它們的具體符號、功能及用法見表4-2。表4-2符號運算符功 能函 數(shù) 名= =等于eq =不等于ne大于gt=大于等于ge&邏輯與and|邏輯或or邏輯非not 說明: 在關系比較中,若比較的雙方為同維數(shù)組,則比較的結(jié)果也是同維數(shù)組。它的元素值由0和1組成。當比較雙方對應位置上的元素值滿足比較關系時,它的對應值為1,否則為0。 當比較的雙方中一方為常數(shù),另一方為一數(shù)組,則比較的結(jié)果與數(shù)組同維。 在算術運算、比較運算和邏輯與、或、非運算中,它們的優(yōu)先級關系先后為: 比較運算、算術運算、邏輯與或非運算。 例2.4 產(chǎn)生5階隨機方陣A,其元素為10,9
28、0區(qū)間的隨機整數(shù),然后判斷A的元素是否能被3整除。 (1) 生成5階隨機方陣A。 A=fix(90-10+1)*rand(5)+10) (2) 判斷A的元素是否可以被3整除。 P=rem(A,3)=05 MATLAB圖形功能MATLAB有很強的圖形功能,可以方便地實現(xiàn)數(shù)據(jù)的視覺化。強大的計算功能與圖形功能相結(jié)合為MATLAB在科學技術和教學方面的應用提供了更加廣闊的天地。下面著重介紹二維圖形的畫法,對三維圖形只作簡單敘述。5.1 二維圖形的繪制5.1.1 基本形式二維圖形的繪制是MATLAB語言圖形處理的基礎,MATLAB最常用的畫二維圖形的命令是plot,plot函數(shù)的基本調(diào)用格式為:plo
29、t(x,y) 其中x和y為長度相同的向量,分別用于存儲x坐標和y坐標數(shù)據(jù)??磧蓚€簡單的例子: y=0 0.58 0.70 0.95 0.83 0.25; plot(y)生成的圖形見圖5-1,是以序號為橫坐標、數(shù)組y的數(shù)值為縱坐標畫出的折線。 x=linspace(0,2*pi,30); % 生成一組線性等距的數(shù)值 y=sin(x); plot(x,y)生成的圖形見圖5-2,是上30個點連成的光滑的正弦曲線。 圖5-1 圖5-2說明:(1)當x,y是同維矩陣時,則以x,y對應列元素為橫、縱坐標分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。(2)當x是向量,y是有一維與x同維的矩陣時,則繪制出多根不同色彩
30、的曲線。曲線條數(shù)等于y矩陣的另一維數(shù),x被作為這些曲線共同的橫坐標。(3)plot函數(shù)最簡單的調(diào)用格式是只包含一個輸入?yún)?shù):plot(x)。例4.2 某工廠2000年各月總產(chǎn)值(單位:萬元)分別為22、60、88、95、56、23、9、10、14、81、56、23,試繪制折線圖以顯示出該廠總產(chǎn)值的變化情況。 程序如下: p=22,60,88,95,56,23,9,10,14,81,56,23; plot(p)5.1.2 多重線在同一個畫面上可以畫許多條曲線,只需多給出幾個數(shù)組,含多個輸入?yún)?shù)的plot函數(shù)調(diào)用格式為:plot(x1,y1,x2,y2,xn,yn)例如 x=0:pi/15:2*p
31、i; y1=sin(x); y2=cos(x); plot(x,y1,x,y2)則可以畫出圖5-3。多重線的另一種畫法是利用hold命令。在已經(jīng)畫好的圖形上,若設置hold on,MATLA將把新的plot命令產(chǎn)生的圖形畫在原來的圖形上。而命令hold off 將結(jié)束這個過程。例如: x=linspace(0,2*pi,30); y=sin(x); plot(x,y)先畫好圖5-2,然后用下述命令增加cos(x)的圖形,也可得到圖5-3。 hold on z=cos(x); plot(x,z) hold off 圖5-3 圖5-4 含選項的plot函數(shù)調(diào)用格式為:plot(x1,y1,選項1,
32、x2,y2, 選項2,xn,yn,選項n)例4.3 用不同線型和顏色在同一坐標內(nèi)繪制曲線y=2e-0.5xsin(2x)。程序如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x1).*sin(2*pi*x1); plot(x,y1,g:,x,y2,b-,x1,y3,rp); 5.1.3 線型和顏色MATLAB對曲線的線型和顏色有許多選擇,標注的方法是在每一對數(shù)組后加一個字符串參數(shù),說明如下:線型(LineStyle)說明線型符號實線虛線
33、雙點線:點劃線標識點(Marker)說明標識點符號說明標識點符號說明標識點符號說明+加號s方塊右三角線的顏色(Color)說明名稱縮寫RGB值名稱縮寫RGB值黃色Y1 1 0綠色g0 1 0紫紅色M1 0 1藍色b0 0 1蘭綠色C0 1 1白色w1 1 1紅色R1 0 0黑色k0 0 0以下面的例子說明用法: x=0:pi/15:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,b:+,x,y2,g-.*)可得圖形5-4。Plot(,PropertyName, PropertyValue,)PropertyName:線寬(LineWidth),顏色(Color),標
34、識點(Marker),標識點邊緣顏色(MarkerEdgeColor),標識點充填顏色(MarkerFaceColor),標識點大小(MarkerSize)等。例:x=0:pi/50:2*pi;y=sin(x);plot(x,y,linewidth,8,color,r)grid on例: t=0:pi/20:2*pi;plot(t,sin(t),-.r*)hold on%以后圖形繪繪制在當前坐標軸圖形上plot(t,sin(t-pi/2),mo,Linewidth,2);plot(t,sin(t-pi),:bs,linewidth,3,MarkerEdgeColor,k, MarkerFace
35、Color,.49 1 .63,MarkerSize,12)hold off 繪制圖形的輔助操作 1. 圖形標注 有關圖形標注函數(shù)的調(diào)用格式為: title(圖形名稱) xlabel(x軸說明) ylabel(y軸說明) text(x,y,圖形說明)legend(圖例1,圖例2,) line(X,Y)%在當前圖形窗口中添加以向量X和向量Y而繪制成的直線。例4.5 給圖形添加圖形標注。程序如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x
36、1).*sin(2*pi*x1); plot(x,y1,g:,x,y2,b-,x1,y3,rp); title(曲線及其包絡線); %加圖形標題 xlabel(independent variable X); %加X軸說明 ylabel(independent variable Y); %加Y軸說明 text(2.8,0.5,包絡線); %在指定位置添加圖形說明 text(0.5,0.5,曲線y); text(1.4,0.1,離散數(shù)據(jù)點); legend(包絡線,包絡線,曲線y,離散數(shù)據(jù)點) %加圖例X=0 16;Y=0 0;line(X,Y);更方便的是用鼠標來確定字符串的位置,方法是輸入命
37、令: gtext(sinx)在圖形窗口十字線的交點是字符串的位置,用鼠標點一下就可以將字符串放在那里。2. 坐標控制函數(shù)的調(diào)用格式為:axis(xmin xmax ymin ymax zmin zmax)axis函數(shù)功能豐富,常用的用法還有:axis equal 縱、橫坐標軸采用等長刻度axis square 產(chǎn)生正方形坐標系(缺省為矩形)axis auto 使用缺省設置axis off 取消坐標軸axis on 顯示坐標軸grid on/off命令控制是畫還是不畫網(wǎng)格線,不帶參數(shù)的grid命令在兩種狀態(tài)之間進行切換。box on/off命令控制是加還是不加邊框線,不帶參數(shù)的box命令在兩種狀
38、態(tài)之間進行切換。例4.6 用圖形保持功能在同一坐標內(nèi)繪制曲線y=2e-0.5xsin(2x)及其包絡線,并加網(wǎng)格線。 程序如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y1,b:); axis(0,2*pi,-2,2); %設置坐標 hold on; %設置圖形保持狀態(tài) plot(x,y2,k); grid on; %加網(wǎng)格線 box off; %不加坐標邊框 hold off; %關閉圖形保持3. 圖形窗口的分割 subplot函數(shù)的調(diào)用格式為: subplot(m,n,p
39、) 例4.7 在一個圖形窗口中以子圖形式同時繪制正弦、余弦、正切、余切曲線。 程序如下: x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); plot(x,y);title(sin(x);axis (0,2*pi,-1,1); subplot(2,2,2); plot(x,z);title(cos(x);axis (0,2*pi,1,1); subplot(2,2,3); plot(x,t);title(tangent(x);axis
40、 (0,2*pi,-40,40); subplot(2,2,4); plot(x,ct);title(cotangent(x);axis (0,2*pi,-40,40);對圖形窗口靈活分割。請看下面的程序。 x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); %選擇22個區(qū)中的1號區(qū) stairs(x,y);title(sin(x)-1);axis (0,2*pi,-1,1); subplot(2,1,2); %選擇21個區(qū)中的2號區(qū)
41、 stem(x,y);title(sin(x)-2);axis (0,2*pi,-1,1); subplot(4,4,3); %選擇44個區(qū)中的3號區(qū) plot(x,y);title(sin(x);axis (0,2*pi,-1,1); subplot(4,4,4); %選擇44個區(qū)中的4號區(qū) plot(x,z);title(cos(x);axis (0,2*pi,-1,1); subplot(4,4,7); %選擇44個區(qū)中的7號區(qū) plot(x,t);title(tangent(x);axis (0,2*pi,-40,40); subplot(4,4,8); %選擇44個區(qū)中的8號區(qū) pl
42、ot(x,ct);title(cotangent(x);axis (0,2*pi,-40,40);繪制二維圖形的其他函數(shù)其他形式的線性直角坐標圖在線性直角坐標系中,其他形式的圖形有條形圖、階梯圖、桿圖和填充圖等,所采用的函數(shù)分別是:bar(x,y,選項)stairs(x,y,選項)stem(x,y,選項)fill(x1,y1,選項1,x2,y2,選項2,)例4.8 分別以條形圖、填充圖、階梯圖和桿圖形式繪制曲線y=2e-0.5x。 程序如下: x=0:0.35:7; y=2*exp(-0.5*x); subplot(2,2,1);bar(x,y,g); title(bar(x,y,g);axi
43、s(0,7,0,2); subplot(2,2,2);fill(x,y,r); title(fill(x,y,r);axis(0,7,0,2); subplot(2,2,3);stairs(x,y,b); title(stairs(x,y,b);axis(0,7,0,2); subplot(2,2,4);stem(x,y,k); title(stem(x,y,k);axis(0,7,0,2);條形圖在Matlab中,函數(shù)bar用于繪制二維垂直條形圖,函數(shù)barh用于繪制二維水平條形圖,兩個函數(shù)的用法基本相同,差別在繪制圖形的方向上。下面給出bar函數(shù)的調(diào)用格式:bar(Y)bar(X,Y)ba
44、r(,width)bar(style)bar(,LineSpec)bar(Y)繪制Y每個元素的條形圖,如果Y是矩陣,繪制Y行數(shù)個條形組。條形的高度對應于Y的值。bar(X,Y)用法和bar(Y)一樣,但不是對應Y下標而是對應X來繪制條形圖,這里的X向量必須具有單調(diào)性。參數(shù)width來設定條形的寬度,默認的寬度是0.8,如果寬度大于1,則條形圖間就會出現(xiàn)交疊。參數(shù)style對應條形圖的兩種格式,可選grouped或者stacked,這里grouped為垂直排列組的條形圖,stacked為垂直堆形的條形圖,其中grouped是默認值。參數(shù)LineSpec和前面用法一樣,用來設置線型,色彩及點型等。
45、例:二維條形圖示例:Y=round(rand(5,3)*10);Subplot(221);bar(Y,group);title(Group);subplot(222);bar(Y,stack);title(Stack);subplot(223);barh(Y,stack);title(Stack);subplot(224);bar(Y,1.5);title(Width=1.5);餅圖為了顯示數(shù)據(jù)元素在總體中所占的百分比的情況,我們常需要餅圖。在Matlab中繪制餅圖的函數(shù)有兩個,即pie和pie3函數(shù),分別用于二維和三維餅圖的繪制。二維餅圖:pie函數(shù)的調(diào)用格式:pie(X)pie(X,exp
46、lode)pie(X) 中,X既可以是向量也可以是矩陣。如果X中各個元素的和大于等于1,則繪制出來的餅圖中每個切片占整個餅圖的百分比為這個元素值占X的元素值和的百分比。如果X中各個元素的各小于1,則繪制的是一個不完整的餅圖,每個切片占整個餅圖的百分比就對應于這個元素的值。參數(shù)explode用于設定餅圖中切片的分離情況,參數(shù)explode的大小必須和X的大小一致,explode中非零元素對應的切片就是分離的切片。這里我們還可以加上自定義的標注,如pie(x,labels),參數(shù)labels的大小必須和X大小相同。例:x=1 3 0.5 2.5 2;subplot(221);pie(x)subpl
47、ot(222);explode=0 1 0 0 0;pie(x,explode) %加上分離的切片subplot(223)label=一班,二班,三班,四班,五班;pie(x,label);subplot(224);pie(x,explode,label)%具有分離和自定義標注的功能三維餅圖pie3的調(diào)用格式:pie3(X);pie3(X,explode)這里的各項參數(shù)的含義和pie的函數(shù)中參數(shù)相同。例子: x=5 10 7 8 1.3; explode=0 1 0 0 0;pie3(x,explode);title(三維餅圖)5.3 圖形的輸出在數(shù)學建模中,往往需要將產(chǎn)生的圖形輸出到Word
48、文檔中。通??刹捎孟率龇椒ǎ菏紫龋贛ATLAB圖形窗口中選擇【File】菜單中的【Export】選項,將打開圖形輸出對話框,在該對話框中可以把圖形以emf、bmp、jpg、pgm等格式保存。然后,再打開相應的文檔,并在該文檔中選擇【插入】菜單中的【圖片】選項插入相應的圖片即可。6 程序設計 MATLAB作為一種高級語言,它不僅可以如前幾節(jié)所介紹的那樣,以一種人機交互式的命令行的方式工作,還可以像BASIC、FORTRAN、C等其他高級計算機語言一樣進行控制流的程序設計,即編制一種以 . m為擴展名的MATLAB程序(簡稱M文件)。而且,由于MATLAB本身的一些特點,M文件的編制同上述幾種高級語言比較起來,有許多無法比擬的優(yōu)點。6.1 M文件所謂M文件就是由MATLAB語言編寫的可在MATLAB語言環(huán)境下運行程序源代碼文件。由于商用的MATLAB軟件是用C語言編寫而成。因此,M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度塔吊安全監(jiān)控安裝施工勞務分包合同
- 二零二五年度房產(chǎn)買賣合同關于房屋附屬設施使用協(xié)議4篇
- 口腔科2025年度公益活動策劃與執(zhí)行合同3篇
- 二零二五年度土地儲備與交易居間合同
- 2025年度消防器材租賃與維修專業(yè)承包服務協(xié)議3篇
- 2025年度臨時倉儲倉儲貨物保險及理賠合同
- 2025年度牧草種植與農(nóng)業(yè)科技研發(fā)合同范本4篇
- 2024維修電器合同
- 2025年度配電箱模塊化設計與制造合同4篇
- 二零二五年度內(nèi)墻裝飾工程碳排放管理合同
- 洗浴部前臺收銀員崗位職責
- 2024年輔警考試公基常識300題(附解析)
- GB/T 43650-2024野生動物及其制品DNA物種鑒定技術規(guī)程
- 暴發(fā)性心肌炎查房
- 口腔醫(yī)學中的人工智能應用培訓課件
- 工程質(zhì)保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習單位鑒定表(模板)
- 數(shù)字媒體應用技術專業(yè)調(diào)研方案
評論
0/150
提交評論