matlab上機(jī)實(shí)驗(yàn)指導(dǎo)書_第1頁
matlab上機(jī)實(shí)驗(yàn)指導(dǎo)書_第2頁
matlab上機(jī)實(shí)驗(yàn)指導(dǎo)書_第3頁
matlab上機(jī)實(shí)驗(yàn)指導(dǎo)書_第4頁
matlab上機(jī)實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

14、釋以%開頭,用于解釋或說明,對計(jì)算結(jié)果不產(chǎn)生任何影響。例2.1 計(jì)算表達(dá)式的值,并將結(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的大部分運(yùn)算或命令都是在矩陣運(yùn)算的意義下執(zhí)行的。在MATLAB中,不需要對矩陣的維數(shù)和類型進(jìn)行說明,MATLAB會(huì)根據(jù)用戶輸入的內(nèi)容自動(dòng)進(jìn)行配置。 2.1.1 矩陣的建立1直接輸入法對于較

15、小的簡單矩陣,從鍵盤上直接輸入矩陣是最常用、最方便的數(shù)值矩陣創(chuàng)建方法。具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。例2.2 生成一個(gè)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的每一個(gè)元素都可以是復(fù)數(shù),實(shí)數(shù)是復(fù)數(shù)的特例,復(fù)數(shù)的虛數(shù)部分用i或j表示。這是在MATLAB啟動(dòng)時(shí)就自動(dòng)設(shè)定的。例如,鍵入 c=3+5.2i得 c=3.0000+5.200

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

17、復(fù)為虛數(shù)標(biāo)識符,然后再執(zhí)行復(fù)數(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ū)間均勻分布的隨機(jī)陣。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個(gè)元素的行向量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的運(yùn)行過程中,有時(shí)需要將矩陣數(shù)據(jù)長期保留下來,可以使用MAT文件對矩陣數(shù)據(jù)進(jìn)行保存,在需要時(shí)將其裝載到MATLAB環(huán)境中。MAT文件是MATLAB保存數(shù)據(jù)的一種標(biāo)準(zhǔn)格式的二進(jìn)制文件。MAT文件的生成和調(diào)用由專用命令save和load來進(jìn)行。用戶可以將已定義過的矩陣(變量)以M

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

20、值和操作。例如,如果想將矩陣A的第2行第3列的元素賦為200,則可通過下面語句完成: A(2, 3)=200 這時(shí)將只改變該元素的值,而不影響其它元素的值。如果給出的行數(shù)和列數(shù)大于原來矩陣的范圍,則MATLAB將自動(dòng)擴(kuò)展原來的矩陣,并將擴(kuò)展后未賦值的矩陣元素置為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利用冒號“:”運(yùn)算生成向量l

21、 a=m:nl a=m:p:n 第一種格式用于生成步長值為1的均勻等分向量,其中m、n為標(biāo)量(數(shù)量),分別代表向量的起始值和終止值,且n>m。例如,輸入語句: a=1:10 運(yùn)行結(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個(gè)元素的行向量。第二種格式生成s個(gè)線性等分點(diǎn)的行向量。例如:linspace(0, 10, 5)ans=0 2.5000 5.0000 7.5000

22、 10.00002.2.4 矩陣拆分1利用冒號表達(dá)式獲得子矩陣(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這兩個(gè)命令的作用都是列出在MATLAB工作空間中已經(jīng)駐留的變

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

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

26、相同位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行,并給出元素比較結(jié)果。最終的結(jié)果是一個(gè)維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。 (3)當(dāng)參與比較的一個(gè)是標(biāo)量,另一個(gè)是矩陣時(shí),則把標(biāo)量與矩陣的每一個(gè)元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)比較,并給出元素比較結(jié)果。最終的運(yùn)算結(jié)果是一個(gè)維數(shù)與矩陣相同的矩陣,它的元素由0或1組成。 (4)算術(shù)運(yùn)算比關(guān)系運(yù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 邏輯表達(dá)式 MATLAB提供了三種邏輯運(yùn)算符:&(與)、|(或)、(非)。 運(yùn)算法則:(1)

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

28、”是單目運(yùn)算符,也服從矩陣運(yùn)算規(guī)則。(6) 在算術(shù)、關(guān)系、邏輯運(yùn)算中,算術(shù)運(yùn)算優(yōu)先級最高,邏輯運(yùn)算優(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ù)學(xué)函數(shù)MATLAB提供了幾乎所有初等數(shù)學(xué)函數(shù),包括三角函數(shù)、對數(shù)函數(shù)、指數(shù)函數(shù)和復(fù)數(shù)運(yùn)算函數(shù)等。函數(shù)的自變量規(guī)定為矩陣變量,運(yùn)算法則是將函數(shù)逐項(xiàng)作用于矩陣的元素上,因而運(yùn)算的結(jié)果是一個(gè)與自變量同維數(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ù)的絕對值、復(fù)數(shù)的模、字符串的ASCII碼值angle 復(fù)數(shù)的復(fù)角 sqrt 平方根函數(shù)real 復(fù)數(shù)的實(shí)部 imag 復(fù)數(shù)的虛部conj 復(fù)數(shù)共軛運(yùn)算 round 四舍五入到最近鄰的整數(shù)fix 向零方向取整 floor 不大于自變量的最大整數(shù)sign 符號函數(shù) ceil 不小于自變量的最

30、小整數(shù)rem 求余數(shù)或模運(yùn)算 gcd 最大公因子lcm 最小公倍數(shù) exp 自然指數(shù)函數(shù)log 自然對數(shù)函數(shù) log10 以10為底的對數(shù)函數(shù)例:a=1 2 3 4 5; %定義向量asin(a) %計(jì)算向量a的正弦ans=0.8415 0.9093 0.1411 -0.7568 -0.9589fix(pi*a)ans= 3 6 9 12 152.5 矩陣的基本運(yùn)算 矩陣運(yùn)算是MATLAB運(yùn)算的基礎(chǔ)。1. 矩陣轉(zhuǎn)置矩陣的轉(zhuǎn)置用符號“”來表示和實(shí)現(xiàn)。假如A矩陣為一個(gè)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矩陣含有復(fù)數(shù)元素,則對之進(jìn)行轉(zhuǎn)置時(shí),其轉(zhuǎn)置矩陣B的元素定義為bji*=aij,i=1,m,j=1,n,亦即首先對各個(gè)元素進(jìn)行轉(zhuǎn)置,然后再逐項(xiàng)求取其共軛復(fù)數(shù)值,這種轉(zhuǎn)置方式又稱為Hermit轉(zhuǎn)置,其數(shù)學(xué)記號為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. 矩陣的加和減矩陣的加減運(yùn)算使用的是“+”和“-”運(yùn)算符。假設(shè)有兩個(gè)矩陣A和B,則可以由下面的命令執(zhí)行矩陣加減法:

32、C=A+B和C=A-B。運(yùn)算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減法,矩陣的加減就是A和B矩陣的相應(yīng)元素相加減。如果A和B的維數(shù)不相同,則MATLAB將給出錯(cuò)誤信息,提示用戶兩個(gè)矩陣的維數(shù)不匹配。3. 矩陣乘法矩陣乘法用*表示。假設(shè)有兩個(gè)矩陣A和B,若A為矩陣,B為np矩陣,則C=A*B是mp矩陣,其各個(gè)元素為: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進(jìn)行乘法運(yùn)算,要求A的列數(shù)與B的行數(shù)相同,此時(shí)稱A,B矩陣是可乘的,或稱A和B矩陣維數(shù)相容。如果兩者的維數(shù)不相容,

33、則將給出錯(cuò)誤信息,表示兩個(gè)矩陣是不可乘的。 在MATLAB中還可以進(jìn)行矩陣和標(biāo)量相乘,標(biāo)量可以是乘數(shù)也可以是被乘數(shù)。矩陣和標(biāo)量相乘是矩陣中的每個(gè)元素與此標(biāo)量相乘。3 矩陣除法在MATLAB中有兩種矩陣除法運(yùn)算:和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則AB和B/A運(yùn)算可以實(shí)現(xiàn)。AB等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。對于矩陣運(yùn)算,一般ABB/A。4 矩陣的乘方 一個(gè)矩陣的乘方運(yùn)算可以表示成Ax,要求A為方陣,x為標(biāo)量。例如: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的常用矩陣運(yùn)算函數(shù)(1) size()函數(shù) size()函數(shù)用于計(jì)算矩陣的行數(shù)和列數(shù),其調(diào)用格式為: m,n=size(a) 將矩陣a的行數(shù)賦值給m、列數(shù)賦值給n 例如,運(yùn)行如下命令: a=1 3 5 7 92 4 6 8 10; m,n=size(a) 運(yùn)行結(jié)果為: m= 2 n= 5 (2)length()函數(shù) length()函數(shù)用于計(jì)算矩陣的長度(列數(shù)),調(diào)用格式為: a=length(b) 將矩陣b的列數(shù)賦值給變量a例如,運(yùn)行如下命令: b=ones(1,100); a=length(b) 運(yùn)行結(jié)果為: a= 1003. prod(

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

37、該命令將產(chǎn)生維數(shù)與矩陣b相同的矩陣a,其元素是由矩陣b的元素按列的方向進(jìn)行反折而得。例如,執(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ù)組運(yùn)算在MATLAB中,數(shù)組和矩陣是兩個(gè)完全不同的概念,它們遵循著不同的運(yùn)算規(guī)則。MATLAB中數(shù)組運(yùn)算符由矩陣運(yùn)算符前面加一點(diǎn)“.”來表示,如.*、./、.等。1. 數(shù)組的加和減數(shù)組的加減運(yùn)算與矩陣的加減運(yùn)算相同。2. 數(shù)組的乘和除數(shù)組的乘法用符號.*表示。如果A、B兩數(shù)組具有相同的維數(shù),則A.*B表示A和B單個(gè)元素之間的對應(yīng)相乘。例如: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ù)組的對應(yīng)元素。B.A等價(jià)于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ù)組的乘方用符號“.”表示。若兩個(gè)數(shù)組的維數(shù)一致,則兩數(shù)組對應(yīng)元素進(jìn)行乘方運(yùn)算,例如:x=1 2 3;y=4 5 6;z=x.yz= 1 32 729指數(shù)可以是標(biāo)量,底也可以是標(biāo)量。例如: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 多項(xiàng)式及其運(yùn)算 MATLAB提供了標(biāo)準(zhǔn)多項(xiàng)式的常用函數(shù),包括求根、相乘、相除等。1多項(xiàng)式的表達(dá)與創(chuàng)建MATLAB采用將多項(xiàng)式系數(shù)按降冪次序排列形成的行向量來表征一多項(xiàng)式。設(shè)多項(xiàng)式為:A(S)=anSn+an-1Sn-1+a1S+a0則表征該多項(xiàng)式的行向量為:P=an an-1 a1 a0。因此,在MATLAB中,創(chuàng)建多項(xiàng)式即可用創(chuàng)建行向量的方法,直接輸入按順序排列的多項(xiàng)式系數(shù)即可。例如,輸入語句:A=2 2 1 1;即表示創(chuàng)建多項(xiàng)式2S3+2S2+S+1, 并賦值給變量A。2多項(xiàng)式求根MATLAB提供的ro

40、ots函數(shù)用于求多項(xiàng)式的全部根。其調(diào)用格式為:X=roots(A)。例:試用roots函數(shù)求多項(xiàng)式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 由指定根求多項(xiàng)式函數(shù)poly用于由指定根求多項(xiàng)式系數(shù)向量,調(diào)用格式為:A=poly(p)其中p為多項(xiàng)式根(行或列向量表示),A為返回的多項(xiàng)式系數(shù)(行向量表示)。例如p=2 1; %指定多項(xiàng)式的根為2和1poly(p) %求滿足指定根的多項(xiàng)式ans=1 -3 2可見roots()與poly()互為逆運(yùn)算。4多

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

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

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

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

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

46、錄添加到MATLAB的默認(rèn)搜索路徑中。設(shè)待執(zhí)行的M文件的保存位置為“D:myfile”,則添加搜索路徑的命令為:path(path,D:myfile)運(yùn)行該命令后,即可直接在MATLAB命令窗口中直接調(diào)用并執(zhí)行D:myfile 目錄下的所有M文件。3.1.2 命令文件當(dāng)用戶運(yùn)行的命令較多或需要反復(fù)運(yùn)行多條命令時(shí),直接從鍵盤逐行輸入命令顯得比較麻煩,而命令文件則可以比較好地解決這一問題。我們可以將需要運(yùn)行的命令編輯到一個(gè)命令文件中,然后在MATLAB命令窗口輸入該命令文件的名字,就會(huì)順序執(zhí)行命令文件中的命令。例:建立一個(gè)命令文件將變量a、b的值互換,然后運(yùn)行該命令文件。解 (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,將會(huì)執(zhí)行該命令文件,輸出為:a= 11 12 13 14 15 1617 18 19 b=1 2 3 4 5 6 7 8 9調(diào)用該命令文件時(shí),不用輸入?yún)?shù),也沒有輸出參數(shù),文件自身建立需要的變量。當(dāng)文件執(zhí)行完畢時(shí),可以用命令whos查看工作空間中的變量。這時(shí)會(huì)發(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ù)文件保存的文件名應(yīng)與用戶定義的函數(shù)名一致,例如,若函數(shù)文件說明語句中定義的函數(shù)名為“example”,則該函數(shù)文件保存的文件名應(yīng)為“example.m”。用戶可通過函數(shù)說明語句中的返回參數(shù)及傳入?yún)?shù)來實(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); %計(jì)算傳入向量

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

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論