matlab上機實驗指導書_第1頁
matlab上機實驗指導書_第2頁
matlab上機實驗指導書_第3頁
matlab上機實驗指導書_第4頁
matlab上機實驗指導書_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 MATLAB應用基礎實驗指導書 文檔可自由編輯打印 第一章 MATLAB及其工作環(huán)境介紹11.1 MATLAB簡介11.2 MATLAB的工作環(huán)境介紹11.3 MATLAB的基本管理命令4第二章 MATLAB的數(shù)值計算功能52.1 變量與賦值語句52.2 MATLAB矩陣52.3 MATLAB表達式102.4 MATLAB常用數(shù)學函數(shù)112.5 矩陣的基本運算122.6 數(shù)組運算162.7 多項式及其運算17第三章 MATLAB程序設計入門193.1 M文件193.2 數(shù)據(jù)的輸入輸出213.3 全局變量和局部變量233.4 程序流程控制23第四章 MATLAB的符號運算功能284.1 建立符

2、號對象284.2 符號算術(shù)運算294.3 符號微積分運算324.4 符號函數(shù)的可視化34第五章 MATLAB的可視化功能375.1 二維圖形375.2繪制三維圖形425.3 特殊坐標圖形445.4 圖形句柄45 第一章 MATLAB及其工作環(huán)境介紹1.1 MATLAB簡介MATLAB是matrix和laboratory前三個字母的縮寫,意思是實驗室矩陣。MATLAB語言是一種廣泛應用于工程計算及數(shù)值分析領域的新型高級語言,自1984年由美國MathWorks公司推向市場以來,經(jīng)過十多年的發(fā)展與完善,MATLAB已發(fā)展成為由MATLAB語言、MATLAB工作環(huán)境、MATLAB圖象處理系統(tǒng)、MAT

3、LAB數(shù)學函數(shù)庫和MATLAB應用程序接口五大部分組成的集數(shù)值計算、圖形處理、程序開發(fā)為一體的功能強大的體系。MATLAB由“主包”和三十多個擴展功能和應用學科性的工具箱組成。MATLAB具有以下基本功能:l 數(shù)值計算功能l 符號計算功能l 圖形處理及可視化功能l 可視化建模及動態(tài)仿真功能MATLAB語言是以矩陣計算為基礎的程序設計語言,語法規(guī)則簡單易學。其指令格式與數(shù)學表達式非常相近,用MATLAB編寫程序猶如在便箋上列寫公式和求解,因而被稱為“便箋式”的編程語言。另外,MATLAB還具有功能豐富和完備的數(shù)學函數(shù)庫及工具箱,大量繁雜的數(shù)學運算和分析可通過調(diào)用MATLAB函數(shù)直接求解,大大提高

4、效率,其程序編譯和執(zhí)行速度遠遠超過了傳統(tǒng)的C和FORTRAN語言,因而用MATLAB編寫程序,往往可以達到事半功倍的效果。在圖形處理方面,MATLAB可以給數(shù)據(jù)以二維、三維乃至四維的直觀表現(xiàn),并在圖形色彩、視角、品性等方面具有較強的渲染和控制能力,使技術(shù)人員對大量原始數(shù)據(jù)的分析變得輕松和得心應手。MATLAB的上述特點,使它深受工程技術(shù)人員及科技專家的歡迎,并成為應用學科計算機輔助分析、設計、仿真、教學等領域不可缺少的基礎軟件。目前MATLAB已成為國際上公認的最優(yōu)秀的科技應用軟件。1.2 MATLAB的工作環(huán)境介紹一、 MATLAB的工作環(huán)境MATLAB 6.5的工作桌面由標題欄、菜單欄、工

5、具欄、命令窗口、工作空間窗口、當前目錄窗口、歷史命令窗口及狀態(tài)欄組成,如圖1-1所示。 圖1.1 MATLAB工作界面MATLAB的工作環(huán)境主要由命令窗(Command Window)、若干個圖形窗(Figure window)、文本編輯器()和文件管理器組成。各視窗之間的切換可用快捷鍵Alt+Tab。1命令窗命令窗是人們與MATLAB作人機對話的主要環(huán)境,通過它可以鍵入MATLAB的各種命令并讀出相應的結(jié)果。但要注意,每一條命令或命令行鍵入后都要按回車鍵,命令才會被執(zhí)行。例如,鍵入a=ones(3,3)然后按回車鍵,即可創(chuàng)建一個3*3且元素值為1的矩陣,并顯示如下運行結(jié)果:a= 1 1 1

6、1 1 1 1 1 12圖形窗通常,只要執(zhí)行了任意一種繪圖命令,圖形窗就會自動產(chǎn)生。繪圖都在這一圖形窗中進行。如果想再建一個圖形窗,則可鍵入figure,MATLAB會新建一個圖形窗,并自動給它排出序號。3文本編輯器MATLAB程序編輯有行命令方式和文件方式兩種,行命令方式是在命令窗中一行一行地輸入程序,計算機每次對一行命令作出反應,像計算器那樣,只能編簡單的程序,在入門時通常用這種方式。文件方式適用于稍復雜一些的程序,此時把程序?qū)懗梢粋€有多行語句組成的文件,讓MATLAB來執(zhí)行這個文件中的全部語句。編寫和修改這種文件程序就要用到文件編輯器。4文件管理窗在較為復雜的程序中,特別是涉及與其它軟件

7、系統(tǒng)進行文件或數(shù)據(jù)交換時,需要用到文件管理系統(tǒng)。MATLAB利用了Window操作系統(tǒng)本身的文件管理器。高版本的MATLAB已把MATLAB文件管理所需的功能集成到MATLAB命令窗口中,使用非常方便。二、 獲取幫助信息MATLAB為用戶提供了強大的在線幫助功能。獲取幫助信息有如下兩種方式:1 用幫助菜單獲取幫助信息l 單擊MATLAB命令窗口菜單欄的(Help)菜單項,選擇(Help Window)選項,則打開MATLAB幫助主題窗口。該窗口列出了MATLAB的所有幫助主題,雙擊相關(guān)主題即可打開有關(guān)該主題的進一步詳細說明。l 單擊MATLAB命令窗口菜單欄的(Help)菜單欄目,彈出幫助菜單

8、選項,選擇(Help Desk)選項,則打開MATLAB幫助工作臺。Helpdesk以超文本方式為用戶提供幫助信息,從基本的入門幫助到工具箱的使用。用戶只需單擊工作臺中的相關(guān)主題,即可獲得該主題的超文本格式的詳細幫助信息。2 通過命令窗口獲取幫助信息通過在命令窗口直接鍵入幫助命令也可獲取MATLAB的在線幫助信息。幫助命令如下:help 列出MATLAB的所有幫助主題helpwin 打開MATLAB的幫助主題窗口helpdesk 打開MATLAB的幫助工作臺help help 打開有關(guān)如何使用幫助信息的幫助窗口help+函數(shù)名(或主題名) 查詢函數(shù)(或主題)的相關(guān)信息三、 使用演示功能(Dem

9、o)MATLAB的演示功能可以幫助用戶學習和理解MATLAB的應用和強大功能,啟動MATLAB的演示程序可通過如下兩種方法:(1) 選擇(Help)菜單的(Examples and Demos)選項,即可打開MATLAB演示窗口。(2) 在MATLAB的命令窗口中鍵入命令Demo,也可打開演示程序窗口。四、 MATLAB的退出退出MATLAB,只需在MATLAB命令窗口內(nèi)鍵入命令exit或quit,或單擊命令窗口的關(guān)閉按鈕即可。1.3 MATLAB的基本管理命令 一、工作空間(workspace)的概念及操作當MATLAB啟動后,系統(tǒng)自動在內(nèi)存中開辟一塊區(qū)域用于存儲用戶在MATLAB命令窗口中

10、定義的變量、運算結(jié)果和有關(guān)數(shù)據(jù)。此內(nèi)存空間稱為MATLAB的工作空間(workspace)。工作空間在MATLAB剛啟動時為空,此后,用戶所定義的變量、運算結(jié)果和有關(guān)數(shù)據(jù)均存儲在該空間。但用戶退出MATLAB后,工作空間的內(nèi)容將不再保留。為了能將工作空間的內(nèi)容長期保留下來,MATLAB為用戶提供了將工作空間以MAT文件格式保存到磁盤的功能,具體操作如下:(1) 保存工作空間。單擊MATLAB命令窗口菜單欄的文件(file)菜單,選擇(Save Workspace as)菜單選項,系統(tǒng)打開工作空間保存設置對話框,在該對話框中用戶可對工作空間保存的路徑和文件名進行設置。(2) 裝載工作空間。在使用

11、MATLAB的過程中,如果需要用到上一次已保存的工作空間的變量和數(shù)據(jù),可以使用以下操作將已保存的工作空間的變量和數(shù)據(jù)裝載到當前工作空間中。單擊MATLAB命令窗口菜單欄的文件(File)菜單,選擇(Load Workspace)菜單選項,系統(tǒng)打開工作空間裝載設置對話框。在該對話框中選定已保存的工作空間的文件名,單擊(打開)按鈕,即可將已保存的工作空間的內(nèi)容裝載到當前工作空間。二、 清除變量命令clearclear命令用于清除當前工作空間中的指定或全部變量。其命令格式為:clear %清除當前工作空間中的全部變量clear a b c %清除當前工作空間中的指定變量a、b和c三、 MATLAB工

12、作窗口操作命令clc 擦除工作窗口中所顯示的所有內(nèi)容 clf 擦除當前圖形窗口中的圖形 exit 關(guān)閉并退出MATLAB pack 整理內(nèi)存碎片以擴大內(nèi)存空間 cd 改變當前工作目錄dir 列出當前目錄及該目錄下的文件及子目錄清單第二章 MATLAB的數(shù)值計算功能2.1 變量與賦值語句1. 變量變量代表一個或若干個內(nèi)存單元,為了對變量所對應的存儲單元進行訪問,需要給變量命名。在MATLAB中,變量名是以字母開頭,后接字母、數(shù)字或下劃線,字符長度應不大于31個,且區(qū)分字母的大小寫。MATLAB的變量分為字符變量和數(shù)值變量兩種。字符變量必須用單引號括起來。例:a=happy new year %表

13、示將字符串happy new year賦值給字符變量ab=365 %表示將數(shù)值365賦值給數(shù)值變量b2. 賦值語句MATLAB賦值語句有兩種形式(1) 變量=表達式(2) 表達式在第一種語句形式下,MATLAB將右邊表達式的值賦給左邊的變量;在第二種語句形式下,將表達式的值賦給MATLAB的永久變量ans。表達式可以由分號、逗號或回車結(jié)束,如果用分號結(jié)束,則左邊的變量結(jié)果將不在屏幕上顯示出來,否則將把結(jié)果全部顯示出來。MATLAB程序(稱為M文件)中的語句常以分號結(jié)束。在一條語句中,如果表達式太復雜,一行寫不下,可以接上三個小黑點(續(xù)行符)并按下回車鍵,然后接下去再寫??梢栽谡Z句后加上注釋。注

14、釋以%開頭,用于解釋或說明,對計算結(jié)果不產(chǎn)生任何影響。例2.1 計算表達式的值,并將結(jié)果賦給變量a,然后顯示出結(jié)果。解:在MATLAB命令窗口輸入命令: a=2*sin(85*pi/180)/(1+sqrt(5)+3*i) 其中pi和i都是MATLAB定義的變量,分別代表和虛數(shù)單位。 該命令的輸出結(jié)果是: a=0.3311-0.3070i2.2 MATLAB矩陣矩陣是MATLAB最基本的數(shù)據(jù)對象,MATLAB的大部分運算或命令都是在矩陣運算的意義下執(zhí)行的。在MATLAB中,不需要對矩陣的維數(shù)和類型進行說明,MATLAB會根據(jù)用戶輸入的內(nèi)容自動進行配置。 2.1.1 矩陣的建立1直接輸入法對于較

15、小的簡單矩陣,從鍵盤上直接輸入矩陣是最常用、最方便的數(shù)值矩陣創(chuàng)建方法。具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。例2.2 生成一個3*3的矩陣只需輸入 A=1,2,3;4,5,6;7,8,9 A= 1 2 3 4 5 6 7 8 9 也可以用回車鍵代替分號,按下列方式輸入: A=1 2 3 4 5 6 7 8 9 其結(jié)果同上。MATLAB的每一個元素都可以是復數(shù),實數(shù)是復數(shù)的特例,復數(shù)的虛數(shù)部分用i或j表示。這是在MATLAB啟動時就自動設定的。例如,鍵入 c=3+5.2i得 c=3.0000+5.200

16、0i對復數(shù)矩陣有兩種賦值方法:(1) 可將矩陣元素逐個賦予復數(shù),例如,鍵入z=1+2i, 3+4i; 5+6i, 7+8i 得 z= 1.0000+2.0000i 3.0000+4.0000i 5.0000+6.0000i 7.0000+8.0000i (2) 將矩陣的實部和虛部分別賦值,如 z=1, 3; 5, 7+2, 4; 6, 8*i 兩種方法可得出同樣結(jié)果。注意只有數(shù)字和i的乘積式中可省略乘號,在方法(2)中若省略“*”,就會出錯。另外,如果在前面其它程序中曾經(jīng)給i或j賦過值,則i,j已經(jīng)不是虛數(shù)符號,這些虛數(shù)賦值語句都不對。此時應鍵入 clear i,j即把曾賦值過的i,j清掉,恢

17、復為虛數(shù)標識符,然后再執(zhí)行復數(shù)賦值語句。2利用MATLAB函數(shù)創(chuàng)建矩陣MATLAB為用戶提供了創(chuàng)建矩陣的函數(shù),他們是:l ones()函數(shù)l zeros()函數(shù)l rand()函數(shù) l randn()函數(shù)l eye()函數(shù)ones()函數(shù)用于產(chǎn)生全為1的矩陣,ones(n)產(chǎn)生(n*n)維的全1陣,ones(n,m)產(chǎn)生n行m列的全1陣。zeros()函數(shù)用于產(chǎn)生全0的矩陣。rand()函數(shù)用于產(chǎn)生0,1區(qū)間均勻分布的隨機陣。randn()函數(shù)用于產(chǎn)生正態(tài)分布的矩陣。eye()函數(shù)用于產(chǎn)生單位陣,eye(n)產(chǎn)生(n*n)維的單位陣。l 利用函數(shù)reshape建立數(shù)值矩陣 例,在MATLAB命

18、令窗口輸入如下命令:xv=1:12 %產(chǎn)生有12個元素的行向量xvym=reshape(xv, 3, 4) %利用向量xv建立3*4矩陣ym輸出結(jié)果為xv= 1 2 3 4 5 6 7 8 9 10 11 12ym=1 4 7 102 5 8 113 6 9 123利用外部數(shù)據(jù)文件(*.mat)保存和裝載矩陣在MATLAB的運行過程中,有時需要將矩陣數(shù)據(jù)長期保留下來,可以使用MAT文件對矩陣數(shù)據(jù)進行保存,在需要時將其裝載到MATLAB環(huán)境中。MAT文件是MATLAB保存數(shù)據(jù)的一種標準格式的二進制文件。MAT文件的生成和調(diào)用由專用命令save和load來進行。用戶可以將已定義過的矩陣(變量)以M

19、AT文件的格式存入到磁盤上,命令格式為:save 路徑文件名 變量save命令可同時將多個矩陣(變量)保存到一個MAT文件中,此時變量名之間需用空格分開。 例如,用戶輸入命令:save c:my a b 則表示將變量a、b以文件名my.mat保存到C盤根目錄下。若路徑默認,則MATLAB自動將變量保存到其默認的目錄(work)中。以MAT文件保存的矩陣,用戶在使用MATLAB的任何時候均可用load命令裝載到MATLAB的工作空間中。例如,要將上述保存的變量a、b重新裝載到MATLAB的工作空間,只需鍵入命令:load c:my2.2.2 矩陣元素MATLAB允許用戶對一個矩陣的單個元素進行賦

20、值和操作。例如,如果想將矩陣A的第2行第3列的元素賦為200,則可通過下面語句完成: A(2, 3)=200 這時將只改變該元素的值,而不影響其它元素的值。如果給出的行數(shù)和列數(shù)大于原來矩陣的范圍,則MATLAB將自動擴展原來的矩陣,并將擴展后未賦值的矩陣元素置為0。 例如:A=1, 2, 3; 4, 5, 6; A(3, 4)=10 則輸出為:1 2 3 04 5 6 00 0 0 102.2.3 向量的生成 在MATLAB系統(tǒng)中,僅有一行或一列的矩陣稱為向量,向量是矩陣的一種特例,在MATLAB中除利用前面已介紹過的創(chuàng)建矩陣的方法來生成向量外,還有以下幾種方法:1利用冒號“:”運算生成向量l

21、 a=m:nl a=m:p:n 第一種格式用于生成步長值為1的均勻等分向量,其中m、n為標量(數(shù)量),分別代表向量的起始值和終止值,且n>m。例如,輸入語句: a=1:10 運行結(jié)果為: a=1 2 3 4 5 6 7 8 9 10第二種格式用于生成步長值為p的均勻等分的行向量。利用函數(shù)linspace()生產(chǎn)向量l linspace(m, n)l linspace(m, n, s)第一種格式生成從起始值m開始到終止值n之間的線性等分的100個元素的行向量。第二種格式生成s個線性等分點的行向量。例如:linspace(0, 10, 5)ans=0 2.5000 5.0000 7.5000

22、 10.00002.2.4 矩陣拆分1利用冒號表達式獲得子矩陣(1) (:,j)表示取A矩陣的第j列全部元素;A(i,:)表示取A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。(2) (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列中的所有元素。例如: A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20; A(2:3,4:5) ans=9 1014 152利用空矩陣刪除矩陣的元素在MAT

23、LAB中,定義 為空矩陣。向量X賦空矩陣的語句為X= ,X= 與clear X不同,clear是將X清除出工作空間,而空矩陣則存在于工作空間,只是維數(shù)為0。將某些行與列從矩陣中移去,采用將其置為空矩陣的方法就是一種有效的方法。例如:A=1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18;A(:,2 4)= 其中第二條命令將刪除A的第二列和第四列元素。其輸出為: A= 1 3 5 6 7 9 11 12 13 15 17 182.2.5 who、whos和永久變量1who和whos who和whos這兩個命令的作用都是列出在MATLAB工作空間中已經(jīng)駐留的變

24、量名清單。但whos在給出駐留變量名的同時,還給出它們的維數(shù)和性質(zhì)。2永久變量在MATLAB工作空間中,還駐留幾個由系統(tǒng)本身定義的變量。由于它們不能被clear清除,故稱為永久變量。除前面介紹過的ans外,其余常用的永久變量有:eps MATLAB計算浮點數(shù)的誤差限pi 圓周率的近似值3.149inf或Inf 無窮大,如一個數(shù)除以0的結(jié)果NaN 非數(shù),例如0/0、inf/inf產(chǎn)生的結(jié)果i或j 虛數(shù)單位realmax MATLAB所能表示的最大浮點數(shù)realmin MATLAB所能表示的最小浮點數(shù)2.3 MATLAB表達式2.3.1算術(shù)表達式 MATLAB的算術(shù)運算符有: +(加)、-(減)、

25、*(乘)、/(右除)、(左除)、(乘方)對于矩陣來說,左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對于除數(shù)是標量的運算,兩種除法運算的結(jié)果相同,如3/4=43=0.7500; 又如,a=10.5,2.5,則a/5=5a=2.1000,0.5000。2.3.2 關(guān)系表達式 MATLAB提供了6種關(guān)系運算符: <(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=(等于)、=(不等于) 運算法則: (1) 當兩個比較量是標量時,直接比較兩個數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為1,否則為0。 (2) 當參與比較的量是兩個維數(shù)相同的矩陣時,比較是對兩個矩陣

26、相同位置的元素按標量關(guān)系運算規(guī)則逐個進行,并給出元素比較結(jié)果。最終的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。 (3)當參與比較的一個是標量,另一個是矩陣時,則把標量與矩陣的每一個元素按標量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的運算結(jié)果是一個維數(shù)與矩陣相同的矩陣,它的元素由0或1組成。 (4)算術(shù)運算比關(guān)系運算具有更高的優(yōu)先權(quán)。A=1,1,2;2,3,1;4,2,1;B=1,1,1;1,1,1;1,1,1;A<=Bans=1 1 00 0 10 0 12.3.3 邏輯表達式 MATLAB提供了三種邏輯運算符:&(與)、|(或)、(非)。 運算法則:(1)

27、邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。(2) 若參與邏輯運算的是兩個標量a和b,那么 a&b a,b全為非零時,運算結(jié)果為1,否則為0。 a|b a,b中只要有一個非零,運算結(jié)果為1. a 當a是零時,運算結(jié)果為1,當a是非零時,運算結(jié)果為0。(3) 若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規(guī)則逐個進行。最終結(jié)果是一個與原矩陣同維數(shù)的矩陣,其元素由1或0組成。(4) 若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規(guī)則逐個進行。最終結(jié)果是一個與矩陣同維數(shù)的矩陣,其元素由1或0組成。(5) 邏輯“非

28、”是單目運算符,也服從矩陣運算規(guī)則。(6) 在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。 例:A=0 1 0 2 0 3 0 4; B=0 1 0 0 0 1 0 0; A&B ans= 0 1 0 0 0 1 0 0 A|B ans= 0 1 0 1 0 1 0 1 A ans= 1 0 1 0 1 0 1 02.4 MATLAB常用數(shù)學函數(shù)MATLAB提供了幾乎所有初等數(shù)學函數(shù),包括三角函數(shù)、對數(shù)函數(shù)、指數(shù)函數(shù)和復數(shù)運算函數(shù)等。函數(shù)的自變量規(guī)定為矩陣變量,運算法則是將函數(shù)逐項作用于矩陣的元素上,因而運算的結(jié)果是一個與自變量同維數(shù)的矩陣。函數(shù)的調(diào)用格式為:函數(shù)名

29、(變量)1. 三角函數(shù)sin 正弦函數(shù) cos 余弦函數(shù)tan 正切函數(shù) asin 反正弦函數(shù)acos 反余弦函數(shù) atan 反正切函數(shù)sinh 雙曲正弦函數(shù) cosh 雙曲余弦函數(shù)tanh 雙曲正切函數(shù) asinh 反雙曲正弦函數(shù)acosh 反雙曲余弦函數(shù) atanh 反雙曲正切函數(shù)2. 基本函數(shù)abs 實數(shù)的絕對值、復數(shù)的模、字符串的ASCII碼值angle 復數(shù)的復角 sqrt 平方根函數(shù)real 復數(shù)的實部 imag 復數(shù)的虛部conj 復數(shù)共軛運算 round 四舍五入到最近鄰的整數(shù)fix 向零方向取整 floor 不大于自變量的最大整數(shù)sign 符號函數(shù) ceil 不小于自變量的最

30、小整數(shù)rem 求余數(shù)或模運算 gcd 最大公因子lcm 最小公倍數(shù) exp 自然指數(shù)函數(shù)log 自然對數(shù)函數(shù) log10 以10為底的對數(shù)函數(shù)例:a=1 2 3 4 5; %定義向量asin(a) %計算向量a的正弦ans=0.8415 0.9093 0.1411 -0.7568 -0.9589fix(pi*a)ans= 3 6 9 12 152.5 矩陣的基本運算 矩陣運算是MATLAB運算的基礎。1. 矩陣轉(zhuǎn)置矩陣的轉(zhuǎn)置用符號“”來表示和實現(xiàn)。假如A矩陣為一個m*n矩陣,則其轉(zhuǎn)置矩陣B的元素定義如下:bji=aij (i=1,m,j=1,n)例如: A=1 2 3;4 5 6;7 8 9;

31、 B=A輸出為: B= 1 4 7 2 5 8 3 6 9若A矩陣含有復數(shù)元素,則對之進行轉(zhuǎn)置時,其轉(zhuǎn)置矩陣B的元素定義為bji*=aij,i=1,m,j=1,n,亦即首先對各個元素進行轉(zhuǎn)置,然后再逐項求取其共軛復數(shù)值,這種轉(zhuǎn)置方式又稱為Hermit轉(zhuǎn)置,其數(shù)學記號為B=A*。例如:A=5+i,2-i,3.1;6*i,4,7-2i;B=AB= 5.0000-1.0000i 0-6.0000i 2.0000+1.0000i 4.0000 3.1000 7.0000+2.0000i2. 矩陣的加和減矩陣的加減運算使用的是“+”和“-”運算符。假設有兩個矩陣A和B,則可以由下面的命令執(zhí)行矩陣加減法:

32、C=A+B和C=A-B。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減法,矩陣的加減就是A和B矩陣的相應元素相加減。如果A和B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。3. 矩陣乘法矩陣乘法用*表示。假設有兩個矩陣A和B,若A為矩陣,B為np矩陣,則C=A*B是mp矩陣,其各個元素為:cij= (i=1,2,m;j=1,2,p)例如: A=1,2,3;4,5,6;B=1,2;3,0;7,4; C=A*B C=28 1461 32 矩陣A和B進行乘法運算,要求A的列數(shù)與B的行數(shù)相同,此時稱A,B矩陣是可乘的,或稱A和B矩陣維數(shù)相容。如果兩者的維數(shù)不相容,

33、則將給出錯誤信息,表示兩個矩陣是不可乘的。 在MATLAB中還可以進行矩陣和標量相乘,標量可以是乘數(shù)也可以是被乘數(shù)。矩陣和標量相乘是矩陣中的每個元素與此標量相乘。3 矩陣除法在MATLAB中有兩種矩陣除法運算:和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則AB和B/A運算可以實現(xiàn)。AB等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。對于矩陣運算,一般ABB/A。4 矩陣的乘方 一個矩陣的乘方運算可以表示成Ax,要求A為方陣,x為標量。例如:A=1,2,3;4,5,6;7,8,0;A2ans= 30 36 15 66 81 42

34、39 54 69顯然,A2即A*A。5 MATLAB的常用矩陣運算函數(shù)(1) size()函數(shù) size()函數(shù)用于計算矩陣的行數(shù)和列數(shù),其調(diào)用格式為: m,n=size(a) 將矩陣a的行數(shù)賦值給m、列數(shù)賦值給n 例如,運行如下命令: a=1 3 5 7 92 4 6 8 10; m,n=size(a) 運行結(jié)果為: m= 2 n= 5 (2)length()函數(shù) length()函數(shù)用于計算矩陣的長度(列數(shù)),調(diào)用格式為: a=length(b) 將矩陣b的列數(shù)賦值給變量a例如,運行如下命令: b=ones(1,100); a=length(b) 運行結(jié)果為: a= 1003. prod(

35、)函數(shù) prod()函數(shù)用于實現(xiàn)矩陣元素的求積運算,其調(diào)用格式為:l prod(a) 若a為向量,則該調(diào)用格式將計算出向量a所有元素之積。若a為矩陣,則該調(diào)用格式將產(chǎn)生一行向量,其元素分別為矩陣a的各列元素之積。l prod(a,k) 該調(diào)用格式將對矩陣a按k定義的方向進行求積運算,若k=1則按列的方向求積,若k=2則按行的方向求積。例如,運行如下命令:b=1 1 1 1 2 2 2 2 3 3 3 3; p1=prod(b) p2=prod(b,2) 運行結(jié)果為: p1= 6 6 6 6 p2= 1 16 81 4. sum()函數(shù) sum()函數(shù)用于實現(xiàn)矩陣元素的求和運算,其調(diào)用格式與pr

36、od()函數(shù)類似。5. max()函數(shù) max()函數(shù)用于求出矩陣元素的最大值,其調(diào)用格式為:l max(a) 若a為向量,則該調(diào)用格式將求出向量a所有元素中的最大值。若a為矩陣,該調(diào)用格式將產(chǎn)生一行向量,其元素分別為矩陣a的各列元素的最大值。l max(a,k) 該調(diào)用格式將對矩陣a按k定義的方向求最大值,若k=1則按列的方向求最大值,若k=2則按行的方向求最大值。另外,與max()相類似的函數(shù)還有min()(求最小值)和mean()(求平均值)函數(shù),它們的調(diào)用格式與max函數(shù)完全相同。(6)fliplr()函數(shù)fliplr()函數(shù)用于實現(xiàn)矩陣的反折運算,即調(diào)用格式為:a=fliplr(b)

37、該命令將產(chǎn)生維數(shù)與矩陣b相同的矩陣a,其元素是由矩陣b的元素按列的方向進行反折而得。例如,執(zhí)行:b=0:10a=fliplr(b)則結(jié)果為:b=0 1 2 3 4 5 6 7 8 9 10a=10 9 8 7 6 5 4 3 2 1 02.6 數(shù)組運算在MATLAB中,數(shù)組和矩陣是兩個完全不同的概念,它們遵循著不同的運算規(guī)則。MATLAB中數(shù)組運算符由矩陣運算符前面加一點“.”來表示,如.*、./、.等。1. 數(shù)組的加和減數(shù)組的加減運算與矩陣的加減運算相同。2. 數(shù)組的乘和除數(shù)組的乘法用符號.*表示。如果A、B兩數(shù)組具有相同的維數(shù),則A.*B表示A和B單個元素之間的對應相乘。例如:x=1 2

38、3;y=4 5 6;z=x.*yz= 4 10 18數(shù)組的除法用符號./或.表示。如果A、B兩數(shù)組具有相同的維數(shù),則A./B表示A數(shù)組的元素除以B數(shù)組的對應元素。B.A等價于A./B。例如:x=1 2 3;y=4 5 6;z1=x./y z2=y.x輸出分別為:z1= 0.2500 0.4000 0.5000z2= 0.2500 0.4000 0.50003. 數(shù)組的乘方數(shù)組的乘方用符號“.”表示。若兩個數(shù)組的維數(shù)一致,則兩數(shù)組對應元素進行乘方運算,例如:x=1 2 3;y=4 5 6;z=x.yz= 1 32 729指數(shù)可以是標量,底也可以是標量。例如:x=1 2 3;z=x.2z=1 4

39、9x=1 2 3;y=4 5 6;z=2.x yz=2 4 8 16 32 642.7 多項式及其運算 MATLAB提供了標準多項式的常用函數(shù),包括求根、相乘、相除等。1多項式的表達與創(chuàng)建MATLAB采用將多項式系數(shù)按降冪次序排列形成的行向量來表征一多項式。設多項式為:A(S)=anSn+an-1Sn-1+a1S+a0則表征該多項式的行向量為:P=an an-1 a1 a0。因此,在MATLAB中,創(chuàng)建多項式即可用創(chuàng)建行向量的方法,直接輸入按順序排列的多項式系數(shù)即可。例如,輸入語句:A=2 2 1 1;即表示創(chuàng)建多項式2S3+2S2+S+1, 并賦值給變量A。2多項式求根MATLAB提供的ro

40、ots函數(shù)用于求多項式的全部根。其調(diào)用格式為:X=roots(A)。例:試用roots函數(shù)求多項式x4+8x3-10的根。其MATLAB命令為:A=1 8 0 0 10;X=roots(A)X= -8.0194 -0.5075+0.9736i -0.5075-0.9736i 1.03443 由指定根求多項式函數(shù)poly用于由指定根求多項式系數(shù)向量,調(diào)用格式為:A=poly(p)其中p為多項式根(行或列向量表示),A為返回的多項式系數(shù)(行向量表示)。例如p=2 1; %指定多項式的根為2和1poly(p) %求滿足指定根的多項式ans=1 -3 2可見roots()與poly()互為逆運算。4多

41、項式相乘(卷積)函數(shù)conv()用于求兩個多項式的乘積多項式,其調(diào)用格式為:R=conv(A,B)其中A、B分別為表征兩個多項式的行向量,R為返回的乘積多項式的系數(shù)向量(按降冪次序排列)。例如:A=1 3 2; %創(chuàng)建多項式S2+3S+2B=1 2 1; %創(chuàng)建多項式S2+2S+1R=conv(A,B) %求多項式A與B的乘積多項式R= 1 5 9 7 25多項式相除(解卷積)函數(shù)deconv()用于進行兩個多項式的相除運算,它是相乘運算(conv)的逆運算,其調(diào)用格式為:B,t=deconv(R,A)其中R為被除多項式,A為除數(shù)多項式,B為商多項式,t為余多項式。即多項式R除以多項式A后得商

42、多項式B和余多項式t。例如:R=1 5 9 7 2; %創(chuàng)建多項式s4+5s3+9s2+7s+2A=1 2 3; %創(chuàng)建多項式s2+2s+3B,t=deconv(R,A) %求多項式R除以多項式A后的商多項式B和余多式t B= 1 3 0 t= 0 0 0 -2 2 若余多項式系數(shù)向量為零向量,則表示R能被A除盡。 第三章 MATLAB程序設計入門3.1 M文件用MATLAB語言編寫的程序,稱為M文件。M文件有兩類:命令文件和函數(shù)文件。兩者區(qū)別在于:命令文件沒有輸入?yún)?shù),也不返回輸出參數(shù);而函數(shù)文件可以輸入?yún)?shù),也可返回輸出參數(shù)。命令文件對MATLAB工作空間中的變量進行操作,而函數(shù)文件中定義

43、的變量為局部變量,當函數(shù)文件執(zhí)行完畢時,這些變量被清除。3.1.1 M文件建立與編輯M文件可以用任何編輯程序建立和編輯,而最常用且最為方便的是使用MATLAB提供的M文件窗口。1. 建立新的M文件從MATLAB命令窗口的File菜單中選擇New菜單項,再選擇M-file命令,將得到M文件窗口。在M文件窗口中輸入M文件的內(nèi)容,輸入完畢后,選擇此窗口File菜單的Save as命令,將會得到Save as對話框。在對話框的File框中輸入文件名(注意,其擴展名必須為.M),再選擇OK按鈕即完成新的M文件的建立。2. 編輯已有的M文件從MATLAB命令窗口的File菜單中選擇Open M-file命

44、令,則屏幕出現(xiàn)Open對話框,在Open對話框中的框中輸入文件名(必要時加上路徑),或從右邊的Directories框中打開這個M文件所在的目錄,再從下面的列表框中選中這個文件,然后按OK按鈕即可打開這個M文件。在M文件窗口可以對打開的M文件進行編輯修改。在編輯完成后,選擇File菜單中的Save命令可以把這個編輯過的M文件保存下來。3. 搜索與執(zhí)行M文件M文件中的命令是通過在MATLAB命令窗口中鍵入M文件的文件名并按下回車鍵來執(zhí)行的。當用戶在命令窗口中鍵入M文件的文件名并按下回車后,系統(tǒng)先搜索該文件,若該文件存在,則以解釋方式順序逐條執(zhí)行M文件的語句。例如,若用戶在命令窗口中輸入文件名ex

45、ample并按回車鍵,則系統(tǒng)搜索該文件的過程如下:(1) 在工作空間中尋找變量example,檢查example是否為變量。(2) 檢查example是否為MATLAB的內(nèi)部函數(shù)。(3) 在當前目錄中搜索文件example.m。(4) 在MATLAB的默認搜索路徑中查找文件example.m?!皐ork”目錄是系統(tǒng)M文件的默認保存目錄。若用戶的M文件保存在“work”目錄以外的其它位置,則可以通過如下兩種方式在MATLAB命令窗口中直接調(diào)用該M文件。方式一:啟動MATLAB后,用“CD”命令將當前工作目錄更改為M文件的保存目錄如:cd A:mydata方式二:用“path”命令將M文件的保存目

46、錄添加到MATLAB的默認搜索路徑中。設待執(zhí)行的M文件的保存位置為“D:myfile”,則添加搜索路徑的命令為:path(path,D:myfile)運行該命令后,即可直接在MATLAB命令窗口中直接調(diào)用并執(zhí)行D:myfile 目錄下的所有M文件。3.1.2 命令文件當用戶運行的命令較多或需要反復運行多條命令時,直接從鍵盤逐行輸入命令顯得比較麻煩,而命令文件則可以比較好地解決這一問題。我們可以將需要運行的命令編輯到一個命令文件中,然后在MATLAB命令窗口輸入該命令文件的名字,就會順序執(zhí)行命令文件中的命令。例:建立一個命令文件將變量a、b的值互換,然后運行該命令文件。解 (1)首先建立命令文件

47、并以文件名e31.m存盤:a=1:9;b=11,12,13;14,15,16;17,18,19;c=a;a=b;b=c;ab(2) 在MATLAB的命令窗口中輸入e31,將會執(zhí)行該命令文件,輸出為:a= 11 12 13 14 15 1617 18 19 b=1 2 3 4 5 6 7 8 9調(diào)用該命令文件時,不用輸入?yún)?shù),也沒有輸出參數(shù),文件自身建立需要的變量。當文件執(zhí)行完畢時,可以用命令whos查看工作空間中的變量。這時會發(fā)現(xiàn)a,b,c等變量仍然保留在工作空間中。3.1.3 函數(shù)文件函數(shù)文件是M文件的另一種類型,函數(shù)文件必須以關(guān)鍵字“function”開頭。函數(shù)文件的第一行為函數(shù)說明語句,

48、其格式為:function 返回參數(shù)1,返回參數(shù)2,=函數(shù)名(傳入?yún)?shù)1,傳入?yún)?shù)2)其中函數(shù)名為用戶自己定義的函數(shù)名(與變量命名規(guī)則相同)。函數(shù)文件保存的文件名應與用戶定義的函數(shù)名一致,例如,若函數(shù)文件說明語句中定義的函數(shù)名為“example”,則該函數(shù)文件保存的文件名應為“example.m”。用戶可通過函數(shù)說明語句中的返回參數(shù)及傳入?yún)?shù)來實現(xiàn)函數(shù)參數(shù)傳遞。返回參數(shù)和傳入?yún)?shù)并不是必須的。下面是函數(shù)文件調(diào)用及參數(shù)傳遞的例子。首先創(chuàng)建函數(shù)文件并保存。function m,s=mean(a) %定義函數(shù)文件mean.m,a為傳入?yún)?shù),m、s為返回%參數(shù) l=length(a); %計算傳入向量

49、長度 s=sum(a); %對傳入向量a求和并賦值給返回向量s m=s/l; %計算傳入向量的平均值并賦值給返回向量m 上述函數(shù)文件定義了一個新的函數(shù)mean其作用是對指定向量求和及均值,并通過向量s、m返回計算結(jié)果。用戶通過如下所示的命令調(diào)用該函數(shù)。a=1:9;m,s=mean(a)m= 5s= 453.2 數(shù)據(jù)的輸入輸出MATLAB的輸入輸出方式包括命令窗口的輸入輸出及圖形界面的輸入輸出。此外,它還允許對文件進行讀寫。這里先介紹命令窗口的輸入輸出。1. input函數(shù)MATLAB提供了一些輸入輸出函數(shù),允許用戶和計算機之間進行數(shù)據(jù)交換。如果用戶想給計算機輸入一個參數(shù),則可以使用input函數(shù)來進行,該函數(shù)的調(diào)用格式為:A=input(提示信息,選項);其中提示信息可以是一個字符串,它用來提示用戶輸入什么樣的數(shù)據(jù)。例如,用戶想輸入矩陣A,則可以采用下面的命令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論