電子書_MATLAB程序設(shè)計與應(yīng)用(第二版)_第1頁
電子書_MATLAB程序設(shè)計與應(yīng)用(第二版)_第2頁
電子書_MATLAB程序設(shè)計與應(yīng)用(第二版)_第3頁
電子書_MATLAB程序設(shè)計與應(yīng)用(第二版)_第4頁
電子書_MATLAB程序設(shè)計與應(yīng)用(第二版)_第5頁
已閱讀5頁,還剩391頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、閱讀時:請選擇“視圖 | 文檔結(jié)構(gòu)圖”,彈出文檔中的標(biāo)題鏈接。數(shù)學(xué)軟件MATLAB程序設(shè)計與應(yīng)用第1章 MATLAB系統(tǒng)環(huán)境1.1 MATLAB概貌1.2 MATLAB環(huán)境的準(zhǔn)備1.3 MATLAB操作界面1.4 MATLAB幫助系統(tǒng)自上世紀(jì)80年代以來,出現(xiàn)了科學(xué)計算語言,亦稱數(shù)學(xué)軟件。MATLABMathematicaMathcadMapleLINDOLINGO1.1 MATLAB概貌 p3MATLAB 是 MATrix LABoratory(矩陣實驗室) 的縮寫。1984年由 Math Works 公司推出,現(xiàn)已成為國際公認(rèn)的優(yōu)秀的工程應(yīng)用開發(fā)環(huán)境,是影響最大,流行最廣的科學(xué)計算語言。1

2、.1.1 MATLAB的發(fā)展版本編號建造編號發(fā)布時間版本編號建造編號發(fā)布時間MATLAB 1.01984MATLAB 6.5.1R13SP12003MATALB 21986MATLAB 6.5.2R13SP22003MATLAB 31987MATLAB 7.0R142004MATLAB 3.51990MATLAB 7.0.1R14SP12004MATLAB 41992MATLAB 7.0.4R14SP22005MATLAB 4.2cR71994MATLAB 7.1R14SP32005MATLAB 5.0R81996MATLAB 7.2R2006a2006MATLAB 5.1R91997MATL

3、AB 7.3R2006b2006MATLAB 5.1.1R9.11997MATLAB 7.4R2007a2007MATLAB 5.2R101998MATLAB 7.5R2007b2007.10MATLAB 5.2.1R10.11998MATLAB 7.6R2008a2008.3MATLAB 5.3R111999MATLAB 7.7R2008b2008.10MATLAB 5.3.1R11.11999MATLAB 7.8R2009a2009.3MATLAB 6.0R122000MATLAB 7.9R2009b2009.10MATLAB 6.1R12.12001MATLAB 7.10R2010a20

4、10.3MATLAB 6.5R132002MATLAB 7.11R2010b2010.101. 從MATLAB 4.2c開始,每個版本增加了一個建造編號;2. 例如MATLAB7.6的建造編號是R2008a。說明MATLAB7.6與MATLAB2008a是等同的;3. 對于建造編號,正規(guī)化以后,每年出兩個版本。一般來說。a是測試版,b是正式版。a是前半年出,b是后半年出。教材采用MATLAB7.0(R14,2004)實驗室采用MATLAB 7.8(R2009a,2009.3,漢化)1.1.2 MATLAB的主要功能 p4u 數(shù)值計算和符號計算功能u 繪圖功能u 語言體系u MATLAB工具箱

5、(1) 數(shù)值計算和符號計算功能MATLAB以矩陣作為數(shù)據(jù)操作的基本單位,還提供了十分豐富的數(shù)值計算函數(shù)。MATLAB先后和著名的符號計算語言Maple與MuPAD(從MATLAB 2008b開始使用MuPAD)相結(jié)合,使得MATLAB具有符號計算功能。 (2) 繪圖功能可以繪制二維和三維圖形。MATLAB提供了兩個層次的繪圖操作:l 對圖形句柄進(jìn)行的低層繪圖操作;l 建立在低層繪圖操作之上的高層繪圖操作。(3) 語言體系MATLAB具有程序結(jié)構(gòu)控制、函數(shù)調(diào)用、數(shù)據(jù)結(jié)構(gòu)、輸入輸出、面向?qū)ο蟮瘸绦蛘Z言特征,而且簡單易學(xué)、編程效率高。MATLAB是解釋性語言,不能脫離MATLAB環(huán)境而獨(dú)立運(yùn)行。(4

6、) MATLAB工具箱MATLAB包含兩部分內(nèi)容:基本部分和各種可選的工具箱。MATLAB工具箱分為兩大類:功能性工具箱和學(xué)科性工具箱。基本部分構(gòu)成MATLAB的核心內(nèi)容,也是使用和構(gòu)造工具箱的基礎(chǔ)。功能性工具箱主要用來擴(kuò)充其符號計算功能、可視建模仿真功能及文字處理功能等。學(xué)科性工具箱Control System Toolbox控制系統(tǒng)工具箱Signal Processing Toolbox信號處理工具箱Neural Network Toolbox神經(jīng)網(wǎng)絡(luò)工具箱Optimization Toolbox最優(yōu)化工具箱Financial Toolbox金融工具箱Statistics Toolbox統(tǒng)

7、計學(xué)工具箱開始工具箱MATLAB具備很強(qiáng)的開放性除內(nèi)部函數(shù)外,所有MATLAB基本文件和各工具箱文件都是可讀、可改的源文件,用戶可通過對源文件的修改或加入自己編寫的文件去構(gòu)成新的專用工具箱。1.1.3 MATLAB功能演示 p5例1.1 繪曲線圖繪制函數(shù)y=2-|x|和y=sin x的曲線。在命令窗口逐條輸入以下命令:x=-2*pi:pi/180:2*pi;plot(x,2.(-abs(x),':',x,sin(x);例1.2 求方程的根求方程2x5-3x3+71x2-9x+13=0的全部根。p=2,0,-3,71,-9,13;x=roots(p)例1.3 解線性方程組法1:調(diào)

8、用求逆矩陣函數(shù)inva=2,3,-1;8,2,3;45,3,9; %系數(shù)矩陣b=2;4;23; %常數(shù)項列向量x=inv(a)*b法2:左除運(yùn)算a=2,3,-1;8,2,3;45,3,9; %系數(shù)矩陣b=2;4;23; %常數(shù)項列向量x=ab法3:符號計算syms x y zx,y,z=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)例1.4 求積分法1:調(diào)用quadquad('x.*log(1+x)',0,1)法2:符號計算syms xint(x*log(1+x),0,1)1.2 MATLAB環(huán)境的準(zhǔn)備 p71.2.1 MATL

9、AB的安裝安裝MATLAB系統(tǒng),需運(yùn)行系統(tǒng)自帶的安裝程序setup.exe,可以按照安裝提示依次操作。1.2.2 MATLAB的啟動與退出 p8啟動有3種常見方法:(1) 使用Windows“開始”菜單。(2) 運(yùn)行MATLAB(文件夾)系統(tǒng)啟動程序matlab.exe。(3) 利用(桌面)快捷方式。退出也有3種常見方法:(1) 在主窗口File菜單中選擇Exit MATLAB。(2) 在命令窗口中鍵入Exit或Quit命令。(3) 單擊主窗口右上角的關(guān)閉按鈕。1.3 MATLAB操作界面 p91.3.1 主窗口MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,還主要

10、包括菜單欄和工具欄。 MATLAB的菜單欄包括6個菜單項: File實現(xiàn)有關(guān)文件的操作Edit用于命令窗口的編輯操作Debug用于程序調(diào)試Desktop用于設(shè)置MATLAB集成環(huán)境的顯示方式(桌面)Window用于關(guān)閉所有打開的編輯器窗口或選擇活動窗口Help用于提供幫助信息。 MATLAB的工具欄提供了一些命令按鈕和一個當(dāng)前路徑列表框。這些命令按鈕有對應(yīng)的菜單命令,但比菜單命令使用起來更快捷、方便。1.3.2 命令窗口(Command Window)命令窗口是MATLAB的主要交互窗口,用于輸入命令并顯示除圖形以外的所有執(zhí)行結(jié)果。>>為命令提示符表示MATLAB正在處于準(zhǔn)備狀態(tài)。

11、在命令提示符后鍵入命令并回車后,MATLAB就會解釋執(zhí)行所輸入的命令,并在命令后面給出計算結(jié)果。該窗口既可以內(nèi)嵌在工作界面內(nèi),也可以浮動到工作界面之外。(右上角的按鈕)一般來說,一個命令行輸入一條命令,命令行以回車結(jié)束。但一個命令行也可以輸入若干條命令,各命令之間以逗號分隔,若前一命令后帶有分號,則逗號可以省略。例p=15, m=35p=15; m=35.為續(xù)行符如果一個命令行很長,一個物理行之內(nèi)寫不下,可以在第一個物理行之后加上續(xù)行符并按下回車鍵,然后接著下一個物理行繼續(xù)寫命令的其他部分。即把續(xù)行符下面的物理行看作該行的邏輯繼續(xù)。表1.1 命令行編輯中常用的控制及其功能 p10鍵名功能PgU

12、pPgDnHomeEndDelBackSpaceEsc前尋式調(diào)回已輸入過的命令后尋式調(diào)回已輸入過的命令左移光標(biāo)右移光標(biāo)前尋式翻滾一頁后尋式翻滾一頁光標(biāo)移到行首光標(biāo)移到行尾刪除光標(biāo)右邊字符(刪除鍵)刪除光標(biāo)左邊字符(返消鍵)刪除當(dāng)前行(取消鍵)1.3.3 工作空間窗口(Workspace) p10工作空間是MATLAB用于存儲各種變量和結(jié)果的內(nèi)存空間。在該窗口中顯示工作空間中所有的變量,可對變量進(jìn)行觀察、編輯、保存和刪除。1.3.4 當(dāng)前目錄窗口和搜索路徑(Cuurent Directory) p11當(dāng)前目錄是指MATLAB運(yùn)行文件時的工作目錄,只有在當(dāng)前目錄或搜索路徑下的文件、函數(shù)可以被運(yùn)行或

13、調(diào)用。在當(dāng)前目錄窗口中可以顯示或改變當(dāng)前目錄,還可以顯示當(dāng)前目錄下的文件并提供搜索功能。cd命令:將用戶目錄設(shè)置成當(dāng)前目錄。例 將用戶目錄e:matlab7work設(shè)置為當(dāng)前目錄。在命令窗口輸入:cd e:matlab7workMATLAB的搜索路徑當(dāng)用戶在MATLAB命令窗口輸入一條命令后,MATLAB按照一定次序?qū)ふ蚁嚓P(guān)的文件?;镜乃阉鬟^程是:(1) 檢查該命令是不是一個變量。(2) 檢查該命令是不是一個內(nèi)部函數(shù)。(3) 檢查該命令是否當(dāng)前目錄下的M文件。(4) 檢查該命令是否MATLAB搜索路徑中其他目錄下的M文件。用戶可以將自己的工作目錄列入MATLAB搜索路徑,從而將用戶目錄納入M

14、ATLAB系統(tǒng)統(tǒng)一管理。設(shè)置搜索路徑的方法有:(1) 用path命令設(shè)置搜索路徑。例 將用戶目錄e:matlab7work加到搜索路徑下。在命令窗口輸入:path(path 'e:matlab7work')(2) 用對話框設(shè)置搜索路徑文件設(shè)置路徑(或在命令窗口執(zhí)行pathtool命令)將出現(xiàn)搜索路徑設(shè)置對話框。通過“添加文件夾”或添加包含子文件夾“按鈕將指定路徑添加到搜索路徑列表中。在修改完搜索路徑后,則需要保存搜索路徑。pathdef.m 保存搜索路徑的信息,通過修改該文件也可以修改搜索路徑。1.3.5 命令歷史窗口(Command History)在默認(rèn)設(shè)置下,歷史記錄窗口

15、中會自動保留自安裝起所有用過的命令的歷史記錄,并且還標(biāo)明了使用時間,從而方便用戶查詢。通過雙擊命令可以再次運(yùn)行歷史命令。要清除這些歷史記錄,可選擇編輯菜單中的Clear Command History命令。 1.3.6 Start菜單 p13在MATLAB主窗口左下角還有一個Start按鈕,單擊該按鈕會彈出一個菜單,選擇其中的命令可以快速訪問MATLAB的各種工具和查閱MATLAB包含的各種資源。 1.4 MATLAB幫助系統(tǒng) p131.4.1 幫助命令 p14MATLAB幫助命令包括help、lookfor以及模糊查詢。1help命令在命令窗口中直接輸入:l help顯示當(dāng)前幫助系統(tǒng)中所包含

16、的所有項目,即搜索路徑中所有的目錄名稱。l help加函數(shù)名 顯示該函數(shù)的幫助說明。2lookfor命令help命令只搜索出那些關(guān)鍵字完全匹配的結(jié)果。lookfor命令只對M文件的第一行進(jìn)行關(guān)鍵字搜索。若在lookfor命令加上-all選項,則可對M文件進(jìn)行全文搜索。(列出的內(nèi)容很長,可用Ctrl+C終止)3模糊查詢用戶只需要輸入命令的前幾個字母,然后按Tab鍵,系統(tǒng)就會列出所有以這幾個字母開頭的命令。1.4.2 幫助窗口 p15進(jìn)入幫助窗口可通過3種方法:(1) 單擊MATLAB主窗口工具欄中的按鈕。(2) 在命令窗口中輸入helpwin、helpdesk或doc。(3) 選擇Help菜單中

17、MATLAB Help命令。1.4.3 演示系統(tǒng)l 在幫助窗口中選擇演示系統(tǒng)(Demos)選項卡,然后在其中選擇相應(yīng)的演示模塊。l 在命令窗口輸入Demos。l 選擇主窗口Help菜單中的Demos子菜單,打開演示系統(tǒng)。第2章 MATLAB數(shù)據(jù)及其運(yùn)算2.1 MATLAB數(shù)據(jù)的特點(diǎn)2.2 變量及其操作2.3 MATLAB矩陣的表示2.4 MATLAB數(shù)據(jù)的運(yùn)算2.5 字符串2.6 結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)2.1 MATLAB數(shù)據(jù)的特點(diǎn) p17矩陣矩陣是MATLAB最基本、最重要的數(shù)據(jù)對象。MATLAB的大部分運(yùn)算或命令都是在矩陣(在復(fù)數(shù)域上)運(yùn)算的意義下執(zhí)行的。標(biāo)量對應(yīng)僅含一個元素的矩陣。數(shù)值數(shù)據(jù)雙

18、精度數(shù),占64位,轉(zhuǎn)換函數(shù)double單精度數(shù),占32位,轉(zhuǎn)換函數(shù)single帶符號整數(shù),轉(zhuǎn)換函數(shù)int8,int16,int32無符號整數(shù),轉(zhuǎn)換函數(shù)uint8,uint16,uint32字符數(shù)據(jù),轉(zhuǎn)換函數(shù)char結(jié)構(gòu)體類型(Structure)單元類型(Cell)邏輯型,非0為true,0為false2.2 變量及其操作2.2.1 變量與賦值1變量命名變量名是以字母開頭,后接字母、數(shù)字或下劃線的字符序列,最多63個字符。變量名區(qū)分字母的大小寫。MATLAB提供的標(biāo)準(zhǔn)函數(shù)名以及命令名必須用小寫字母。2賦值語句(1) 變量=表達(dá)式 (2) 表達(dá)式(值賦給預(yù)定義變量ans)其中表達(dá)式是用運(yùn)算符將有

19、關(guān)運(yùn)算量連接起來的式子,其結(jié)果是一個矩陣。例2.1 計算表達(dá)式的值 p18將的計算結(jié)果賦給變量x,然后顯示出結(jié)果。x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)其中pi和i都是MATLAB預(yù)先定義的變量,分別代表圓周率和虛數(shù)單位。3. 預(yù)定義變量 p18表2.1 常用的預(yù)定義變量及其含義預(yù)定義變量含義ansepspii,jinf,InfNaN,nannarginnargoutrealmaxrealminlasterrlastwar默認(rèn)賦值變量機(jī)器零閾值近似值虛數(shù)單位無窮大,如1/0的結(jié)果非數(shù),如0/0,inf/inf的結(jié)果函數(shù)輸入?yún)?shù)個數(shù)函數(shù)輸出參數(shù)個數(shù)最大正實數(shù)最小正

20、實數(shù)存放最新的錯誤信息存放最新的警告信息預(yù)定義變量有特定的含義,在使用時,應(yīng)盡量避免對這些變量重新賦值。i=2 %對預(yù)定義變量重新賦值2*iclear i%恢復(fù)預(yù)定義變量2*i2.2.2 變量的管理 p191內(nèi)存變量的顯示與刪除顯示工作空間中駐留的變量名清單及信息命令:who %顯示變量名清單whos %顯示變量名清單及信息刪除工作空間中的變量命令:clear 變量名工作空間窗口專門用于內(nèi)存變量的管理。在工作空間窗口中顯示所有內(nèi)存變量的屬性。l 當(dāng)選中某些變量(Ctrl或Shift+單擊)后,再單擊Delete按鈕,就能刪除這些變量。l 雙擊變量后,將進(jìn)入變量編輯器。通過變量編輯器可以直接觀察

21、變量中的具體元素,也可修改變量中的具體元素。l 輸入較大矩陣時,可采用變量編輯器。2內(nèi)存變量文件利用MAT文件可以把當(dāng)前工作空間中的一些有用變量長久地保留下來,擴(kuò)展名是.mat。MAT文件的生成和裝入由save和load命令來完成。常用格式為:save 文件名變量名表 -append-asciiload 文件名變量名表 -asciil 文件名可以帶路徑,但不需帶擴(kuò)展名.mat,命令默認(rèn)對.mat文件進(jìn)行操作。l 變量名表中的變量個數(shù)不限,只要內(nèi)存或文件中存在即可,變量名之間以空格分隔。當(dāng)變量名表省略時,保存或裝入全部變量。l -ascii選項使文件以ASCII格式處理,省略該選項時文件將以二進(jìn)

22、制格式處理。l -append選項控制將變量追加到MAT文件中。2.2.3 數(shù)據(jù)的輸出格式 p20用十進(jìn)制數(shù)表示一個常數(shù),具體可采用日常記數(shù)法和科學(xué)記數(shù)法兩種表示方法。在一般情況下,內(nèi)部每一個數(shù)據(jù)元素都是用雙精度數(shù)來表示和存儲的。數(shù)據(jù)輸出時可用format命令設(shè)置或改變數(shù)據(jù)輸出格式。format命令的格式為: format 格式符其中格式符決定數(shù)據(jù)的輸出格式表2.2 控制數(shù)據(jù)輸出格式格式符及其含義格式符含義short(默認(rèn))小數(shù)點(diǎn)后4位,不超過7位有效數(shù)字。大于1000的實數(shù)用5位有效數(shù)字的科學(xué)記數(shù)法long15位有效數(shù)字short e5位有效數(shù)字科學(xué)記數(shù)法long e15位有效數(shù)字科學(xué)記數(shù)法

23、short g從short和short e選擇最佳方式long g從long和long e選擇最佳方式rat近似有理數(shù)表示hex十六進(jìn)制表示+正數(shù)、負(fù)數(shù)、零分別用+、-、空格表示bank銀行格式,元、角、分表示compact輸出變量之間無空行l(wèi)oose輸出變量之間有空行例4/3%當(dāng)前輸出格式format long%15位有效數(shù)字形式輸出4/3format rat%近似有理數(shù)表示4/3format compact%輸出變量之間沒有空行4/3format loose%輸出變量之間有空行4/3format short%short為默認(rèn)輸出格式2.3 矩陣的表示 p21表 矩陣操作函數(shù)及其含義函數(shù)名含

24、義eyeoneslinspacesub2indind2subsizelengthreshapeend 單位矩陣全1矩陣生成行向量下標(biāo)轉(zhuǎn)換成序號序號轉(zhuǎn)換成下標(biāo)給出矩陣的行數(shù)和列數(shù)給出矩陣行數(shù)和列數(shù)中較大者矩陣重排預(yù)定義變量,某一維末尾下標(biāo)空矩陣2.3.1 矩陣的建立1. 直接輸入法最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。(可用回車代替分號)例A=1,2,3;4 5 6;7,8 92. 利用M文件建立矩陣對于比較大且比較復(fù)雜的矩陣,可以為它專門建立一個M文件

25、。例2.2 利用M文件建立矩陣(1) 啟動MATLAB文本編輯器,輸入:MYMAT=101,102,103,104,105;201,202,203,204,205;301,302,303,304,305(2) 存盤(文件名為mymatrix.m)。(3) 在命令窗口中輸入mymatrix,即運(yùn)行該M文件,就建立一個名為MYMAT的矩陣。3. 建立大矩陣(矩陣拼接)大矩陣可由方括號中的小矩陣或向量建立。A=1,2,3;4,5,6;7,8,9;C=A,eye(3),ones(3),Aeye(3)為3階單位矩陣ones(3)為3階全1矩陣2.3.2 冒號表達(dá)式用冒號表達(dá)式產(chǎn)生行向量,一般格式:e1:

26、e2:e3其中e1為初始值,e2為步長,e3為終止值。用linspace函數(shù)產(chǎn)生行向量。調(diào)用格式:linspace(a,b,n)其中a和b是生成向量的第一個和最后一個元素,n是元素總數(shù)。2.3.3 矩陣的拆分1矩陣元素通過下標(biāo)引用矩陣的元素,例如A=1,2,3;4,5,6A(2,3)A(2,2)=22;AA(4,5)=10;A采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號是相應(yīng)元素在內(nèi)存中的排列順序。在MATLAB中,矩陣元素按列存儲,先第一列,再第二列,依次類推。A=1,2,3;4,5,6;A(3)序號(Index)與下標(biāo)(Subscript )是一一對應(yīng)的,以m×n矩陣A為例,

27、矩陣元素A(i,j)的序號為(j-1)*m+i。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得clcA=ones(3,4)size(A)%給出矩陣的行數(shù)和列數(shù)sub2ind(size(A),1,2)i,j=ind2sub(size(A),3)length(A)%給出矩陣行數(shù)和列數(shù)中較大者reshape(A,m,n)在矩陣總元素保持不變的前提下,將矩陣重新排成m×n矩陣。x=1,2,3,4,5,6,7,8,9,10,11,12y=reshape(x,3,4)z=reshape(y,2,7) %出錯2. 矩陣拆分(1) 利用冒號表達(dá)式獲得子矩陣A(:,j)表示取A矩陣的第j

28、列全部元素;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列中的所有元素;A(:)將矩陣A每一列元素堆疊起來,成為一個列向量。end表示某一維的末尾元素下標(biāo)。A(end,:)A(:,end)(2) 利用空矩陣刪除矩陣的元素給變量X賦空矩陣的語句:X= 注意,X=與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數(shù)為0。2.4 MATLA

29、B數(shù)據(jù)的運(yùn)算 p262.4.1 算術(shù)運(yùn)算1基本算術(shù)運(yùn)算MATLAB的基本算術(shù)運(yùn)算有:加減*乘/右除左除乘方注意,運(yùn)算是在矩陣意義下進(jìn)行的。(1) 矩陣加減運(yùn)算假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運(yùn)算。運(yùn)算規(guī)則是:l 若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運(yùn)算,A和B矩陣的相應(yīng)元素相加減。l 若A與B的維數(shù)不相同,將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。(2) 矩陣乘法 若A為m×n矩陣,B為n×p矩陣,則C=A*B為m×p矩陣。(3) 矩陣除法有兩種矩陣除法運(yùn)算:左除/右除如果A矩陣是非奇異方陣,則AB和B/A運(yùn)算可以實現(xiàn)。AB等

30、效于inv(A)*BB/A等效于B*inv(A)對于含有標(biāo)量的運(yùn)算,兩種除法運(yùn)算的結(jié)果相同。如 3/4和43有相同的值,都等于0.75。又如 設(shè)a=10.5,25,則a/5=5a=2.1000 5.0000。對于矩陣運(yùn)算,一般ABB/A。(4) 矩陣的乘方一個矩陣的乘方運(yùn)算可以表示成Ax要求A為方陣,x為標(biāo)量。2點(diǎn)運(yùn)算有一種特殊的運(yùn)算,因為其運(yùn)算符是在有關(guān)算術(shù)運(yùn)算符前面加點(diǎn),所以叫點(diǎn)運(yùn)算。點(diǎn)運(yùn)算符有.*點(diǎn)乘./點(diǎn)右除.點(diǎn)左除.點(diǎn)乘方兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維數(shù)相同。3. MATLAB常用數(shù)學(xué)函數(shù) p29l 函數(shù)的自變量規(guī)定為矩陣變量。l 運(yùn)算法則是將函數(shù)逐項

31、作用于矩陣的元素上。l 結(jié)果是一個與自變量同維數(shù)的矩陣。表2.3 常用數(shù)學(xué)函數(shù)及其含義 p29函數(shù)名含義三角函數(shù)sqrtloglog10log2exppow2absanglerealimagconjremmodfixfloorceilroundsigngcdlcm略平方根函數(shù)自然對數(shù)函數(shù)常用對數(shù)函數(shù)以2為底的對數(shù)函數(shù)自然指數(shù)函數(shù)2的冪絕對值函數(shù)復(fù)數(shù)的幅角復(fù)數(shù)的實部復(fù)數(shù)的虛部復(fù)數(shù)共軛運(yùn)算求余數(shù)或模運(yùn)算模運(yùn)算向零方向取整不大于自變量的最大整數(shù)不小于自變量的最小整數(shù)四舍五入到最鄰近的整數(shù)符號函數(shù)最大公因子最小公倍數(shù)函數(shù)使用說明:(1) 三角函數(shù)以弧度為單位計算。(2) abs函數(shù)可以求實數(shù)的絕對值、

32、復(fù)數(shù)的模、字符串的ASCII碼值。abs(-10)abs(2+3i)abs('abc')(3) 用于取整的函數(shù)有fix向0方向取整floor向-方向取整ceil向+方向取整round四舍五入到最鄰近的整數(shù)(4) rem(x,y)和mod(x,y)要求x,y必須為相同大小的實矩陣或為標(biāo)量。rem求余數(shù)或模運(yùn)算mod模運(yùn)算l 當(dāng)y0時rem(x,y)=x-y.*fix(x./y)mod(x,y)=x-y.*floor(x./y)l 當(dāng)y=0時rem(x,0)=NaN(非數(shù))mod(x,0)=x2.4.2 關(guān)系運(yùn)算 p306種關(guān)系運(yùn)算符:<小于<=小于或等于>大于&

33、gt;=大于或等于=等于=不等于運(yùn)算法則:(1) 兩個標(biāo)量的比較若關(guān)系成立,結(jié)果為1,否則為0。(2) 兩個同維數(shù)矩陣的比較對相同位置的元素比較。(3) 標(biāo)量與矩陣的比較標(biāo)量與矩陣的每一個元素比較。例2.3 建立5階方陣,判斷A的元素是否能被3整除。A=24,35,13,22,63;23,39,47,80,80;.90,41,80,29,10;45,57,85,62,21;.37,19,31,88,76P=rem(A,3)=0%判斷元素是否被3整除2.4.3 邏輯運(yùn)算 p31邏輯運(yùn)算符:&與|或非運(yùn)算法則:(1) 在邏輯運(yùn)算中,確認(rèn)非零元素為真,用1表示,零元素為假,用0表示。(2)

34、a和b是兩個標(biāo)量l a&b a,b全為非零時,結(jié)果為1,否則為0。l a|b a,b中只要有一個非零,結(jié)果為1,否則為0。l a 當(dāng)a是零時,結(jié)果為1;當(dāng)a非零時,結(jié)果為0。(3) 兩個運(yùn)算量是同維矩陣相同位置上的元素按標(biāo)量規(guī)則逐個進(jìn)行。(4) 一個是標(biāo)量,另一個是矩陣標(biāo)量與矩陣中的每個元素之間按標(biāo)量規(guī)則逐個進(jìn)行。(5) 邏輯非是單目運(yùn)算符,也服從矩陣運(yùn)算規(guī)則。(6) 在算術(shù)、關(guān)系、邏輯運(yùn)算中,算術(shù)運(yùn)算優(yōu)先級最高,邏輯運(yùn)算優(yōu)先級最低。例2.4 在0, 3區(qū)間,求y=sinx的值。要求: 消去負(fù)半波,即(, 2)內(nèi)的函數(shù)值置0。 和內(nèi)取均值為。%方法1x=0:pi/100:3*pi;y=

35、sin(x);y1=(x<pi | x>2*pi).*y;%消去負(fù)半波q=(x>pi/3 & x<2*pi/3) | .(x>7*pi/3 & x<8*pi/3);qn=q;y2=q*sin(pi/3)+qn.*y1;%處理plot(x,y;y1;y2);%方法2x=0:pi/100:3*pi;y=sin(x);y1=(y>=0).*y;%消去負(fù)半波p=sin(pi/3);y2=(y>=p)*p+(y<p).*y1;%處理plot(x,y;y1;y2);表2.4 關(guān)系邏輯運(yùn)算函數(shù)及其含義 p32函數(shù)名含義allanyexis

36、tfindisemptyisglobalisinfisnanisfiniteissparseisstrxor向量的所有元素非0,結(jié)果為1向量中任何一個非0,結(jié)果為1變量在工作空間,結(jié)果為1找出矩陣中非0元素的位置變量是空矩陣,結(jié)果為1變量是全局變量,結(jié)果為1元素是±,對應(yīng)位置取1元素不是一個數(shù),對應(yīng)位置取1元素值有限,對應(yīng)位置取1變量是稀疏矩陣,結(jié)果為1變量是字符串,結(jié)果為1兩矩陣對應(yīng)元素同為0或非0,對應(yīng)位置取0例2.5 建立矩陣A,然后找出在10,20區(qū)間的元素的位置。A=4,15,-45,10,6;56,0,17,-45,0find(A>=10 & A<=2

37、0)2.5 字符串 p33字符串是用單撇號括起來的字符序列。將字符串當(dāng)作一個行向量,每個元素對應(yīng)一個字符,其標(biāo)識方法和數(shù)值向量相同??梢越⒍嘈凶址仃?。字符串是以ASCII碼形式存儲的。abs和double函數(shù)都可以用來獲取字符串矩陣所對應(yīng)的ASCII碼數(shù)值矩陣。相反,char函數(shù)可以把ASCII碼矩陣轉(zhuǎn)換為字符串矩陣。例2.6 建立一個字符串向量,然后對該向量做如下處理:(1) 取第15個字符組成的子字符串。(2) 將字符串倒過來重新排列。(3) 將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。(4) 統(tǒng)計字符串中小寫字母的個數(shù)。clc;ch='ABc123d4e56Fg9

38、' ;subch=ch(1:5) %取子字符串revch=ch(end:-1:1) %將字符串倒排k=find(ch>='a' & ch<='z') %找小寫字母的位置ch(k)= 'A'+(ch(k)-'a') %小寫字母變成大寫chchar(ch) %ASCII碼矩陣轉(zhuǎn)換為字符矩陣length(k) %統(tǒng)計小寫字母的個數(shù)char(0:29;30:59;60:89;90:119;120:149)函數(shù)eval,其調(diào)用格式為:eval(t)其中t為字符串。作用:把字符串的內(nèi)容作為對應(yīng)的MATLAB語句來執(zhí)

39、行。表2.5 字符串處理函數(shù)及其含義函數(shù)名含義setstrcharmat2strnum2strint2strstr2numstrcatstrcmpabs將ASCII碼值轉(zhuǎn)換成字符同上,將代替setstr將矩陣轉(zhuǎn)換成字符串將數(shù)值轉(zhuǎn)換成字符串將整數(shù)轉(zhuǎn)換成字符串將字符串轉(zhuǎn)換成數(shù)值用于字符串的連接用于字符串的比較將字符轉(zhuǎn)換成ASCII碼(1) 若字符串中含有單撇號,則該撇號用兩個單撇號表示。(2) 某些情況下用字符串向量表示,即用 括起來。disp('I''m a teacher.')f=70;c=(f-32)/1.8;disp('Room temperatur

40、e is ',.num2str(c),'degrees C.')2.6 結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù) p342.6.1 結(jié)構(gòu)數(shù)據(jù)1結(jié)構(gòu)矩陣的建立與引用結(jié)構(gòu)矩陣的元素可以是不同的數(shù)據(jù)類型,它能將一組具有不同屬性的數(shù)據(jù)納入到一個統(tǒng)一的變量名下進(jìn)行管理。建立一個結(jié)構(gòu)矩陣可采用給結(jié)構(gòu)成員賦值的辦法。格式為:結(jié)構(gòu)矩陣名.成員名=表達(dá)式其中表達(dá)式應(yīng)理解為矩陣表達(dá)式。例 建立含有3個元素的結(jié)構(gòu)矩陣a(1).x1=10; a(1).x2='liu' a(1).x3=11,21;34,78;a(2).x1=12; a(2).x2='wang' a(2).x3=34,

41、191;27,578;a(3).x1=14; a(3).x2='cai' a(3).x3=13,890;67,231;a(2).x3%引用矩陣元素a(2)的成員x3a(2)%引用矩陣元素a(2)a%引用結(jié)構(gòu)矩陣a2結(jié)構(gòu)成員的修改 p35可以根據(jù)需要增加或刪除結(jié)構(gòu)的成員。給a中任意一個元素增加成員x4:a(1).x4='410075'但其他成員均為空矩陣,可以使用賦值語句給它賦確定的值。用rmfield函數(shù)刪除結(jié)構(gòu)的成員。a=rmfield(a,'x4');3關(guān)于結(jié)構(gòu)的函數(shù)表2.6 結(jié)構(gòu)的函數(shù)及其含義 p36函數(shù)名含義structgetfieldr

42、mfieldisstructfieldnamessetfieldisfield建立或轉(zhuǎn)換為結(jié)構(gòu)矩陣獲取結(jié)構(gòu)成員的內(nèi)容刪除結(jié)構(gòu)成員是結(jié)構(gòu)時,值為真獲取結(jié)構(gòu)成員名設(shè)定結(jié)構(gòu)成員的內(nèi)容成員在結(jié)構(gòu)中時,值為真2.6.2 單元數(shù)據(jù) p36單元矩陣的各個元素是不同類型的數(shù)據(jù),用帶有大括號下標(biāo)的形式引用單元矩陣元素。1單元矩陣的建立與引用建立單元矩陣和一般矩陣相似,只是矩陣元素用大括號括起來。例 建立單元矩陣。b=10,'liu', 11,21;34,78;.12,'wang',34,191;27,578;.14,'cai',13,890;67,231; bb3

43、,3b3,3=10;b3,3bb(4)%第4個元素b42關(guān)于單元的函數(shù)表2.7 單元的函數(shù)及其含義 p37函數(shù)名含義celldispnum2cellcell2structiscellcellplotdealstruct2cell顯示單元矩陣內(nèi)容把數(shù)字矩陣轉(zhuǎn)換為單元矩陣把單元矩陣轉(zhuǎn)換為結(jié)構(gòu)矩陣是單元矩陣時,值為真顯示單元矩陣的圖形描述把輸入分配給輸出把結(jié)構(gòu)矩陣轉(zhuǎn)換為單元矩陣第3章 MATLAB矩陣分析與處理3.1 特殊矩陣3.2 矩陣結(jié)構(gòu)變換3.3 矩陣求逆與線性方程組求解3.4 矩陣求值3.5 矩陣的特征值與特征向量3.6 矩陣的超越函數(shù)3.1 特殊矩陣 p393.1.1 通用的特殊矩陣表 產(chǎn)

44、生通用特殊矩陣的函數(shù)及其含義 p39函數(shù)名含義zeros產(chǎn)生全0矩陣(零矩陣)ones產(chǎn)生全1矩陣(幺矩陣)eye產(chǎn)生單位矩陣rand產(chǎn)生01間均勻分布的隨機(jī)矩陣randn產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣?yán)?.1 分別建立3×3、3×2和與矩陣A同樣大小的零矩陣 p39zeros(3)zeros(3,2)A=1 2 3;4 5 6; %產(chǎn)生一個2×3階矩陣Azeros(size(A) %產(chǎn)生與A同樣大小的零矩陣?yán)?.2 建立隨機(jī)矩陣 p40(1) 在區(qū)間20,50內(nèi)均勻分布的5階隨機(jī)矩陣。(2) 均值為0.6、方差為0.1的5階正態(tài)分布隨機(jī)矩陣。x=2

45、0+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)3.1.2 用于專門學(xué)科的特殊矩陣 p40表 產(chǎn)生專門學(xué)科特殊矩陣的函數(shù)及其含義 函數(shù)名含義magic(n) 求魔方矩陣vander(V)生成指定向量為V的范得蒙矩陣hilb(n)生成希爾伯特矩陣invhilb(n)求n階希爾伯特矩陣的逆toeplitz(x,y)生成托普利茲矩陣toeplitz(x)用向量x生成一個對稱的托普利茲矩陣compan(p)生成伴隨矩陣pascal(n)生成一個n階帕斯卡矩陣 (1) 魔方矩陣其每行、每列及兩條對角線上的元素和都相等。對于n階魔方陣,其元素由1,2,3,n2共n2個整數(shù)

46、組成。magic(n)求魔方矩陣的函數(shù)。例3.3 將101125等25個數(shù)填入一個5行5列的表格中,使其每行每列及對角線的和均為565。M=100+magic(5)(2) 范得蒙(Vandermonde)矩陣最后一列全為1;倒數(shù)第二列為一個指定的向量;其他各列是其后列與倒數(shù)第二列的點(diǎn)乘積。vander(V)生成指定向量為V的范得蒙矩陣。例 A=vander(1;2;3;5)A=vander(1;2;3;5')(3) 希爾伯特矩陣元素 hilb(n)生成希爾伯特矩陣的函數(shù)。條件數(shù)很差,使用一般方法求逆會因為原始數(shù)據(jù)的微小擾動而產(chǎn)生不可靠的計算結(jié)果。invhilb(n)求n階希爾伯特矩陣的

47、逆的函數(shù)。例3.4 求4階希爾伯特矩陣及其逆矩陣。clc;format rat %以有理形式輸出H=hilb(4)H=invhilb(4)(4) 托普利茲矩陣除第一行第一列外,其他每個元素都與左上角的元素相同。toeplitz(x,y)生成一個以x為第一列,y為第一行的托普利茲矩陣。這里x, y均為向量,兩者不必等長。toeplitz(x)用向量x生成一個對稱的托普利茲矩陣。clc;T=toeplitz(1:6)(5) 伴隨矩陣compan(p)生成伴隨矩陣的函數(shù)其中p是一個多項式的系數(shù)向量,高次冪系數(shù)排在前,低次冪排在后。例 求多項式的x3-7x+6的伴隨矩陣。clc;p=1,0,-7,6;

48、compan(p)(6) 帕斯卡(Pascal)矩陣二次項(x+y)n展開后的系數(shù)隨n的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡矩陣。pascal(n)生成一個n階帕斯卡矩陣。例3.5 求(x+y)5的展開式。clc;pascal(6)矩陣次對角線上的元素1,5,10,10,5,1即為展開式的系數(shù)。3.2 矩陣結(jié)構(gòu)變換 p43表 矩陣結(jié)構(gòu)變換函數(shù)及其含義 函數(shù)名含義diag(A)提取矩陣A主對角線元素,產(chǎn)生一個具有min(m,n)個元素的列向量diag(A,k)提取第k條對角線的元素diag(V)產(chǎn)生一個m×m對角矩陣,其主對角線元素為向量V的元素di

49、ag(V,k)產(chǎn)生一個n×n(n=m+|k|)對角陣,其第k條對角線的元素為向量V的元素triu(A)求矩陣A的上三角陣triu(A,k)求矩陣A的第k條對角線以上的元素tril(A)求矩陣A的下三角陣tril(A,k)求矩陣A的第k條對角線以下的元素rot90(A,k)將矩陣A旋轉(zhuǎn)90º的k倍,按逆時針方向fliplr(A)對矩陣A實施左右翻轉(zhuǎn)flipud(A)對矩陣A實施上下翻轉(zhuǎn)3.2.1 對角陣與三角陣1對角陣只有對角線上有非0元素的矩陣稱為對角矩陣。數(shù)量矩陣對角線上的元素相等的對角矩陣。單位矩陣對角線上的元素都為1的對角矩陣。(1) 提取矩陣的對角線元素設(shè)A為m&#

50、215;n矩陣。Ø diag(A)提取矩陣A主對角線元素,產(chǎn)生一個具有min(m,n)個元素的列向量。Ø diag(A,k)提取第k條對角線的元素。clc;A=0,1,2;-1,0,1;-2,-1,0diag(A,0)diag(A,1)diag(A,2)diag(A,-1)diag(A,-2)(2) 構(gòu)造對角矩陣設(shè)V為具有m個元素的向量。Ø diag(V)產(chǎn)生一個m×m對角矩陣,其主對角線元素即為向量V的元素。Ø diag(V,k)產(chǎn)生一個n×n(n=m+|k|)對角陣,其第k條對角線的元素即為向量V的元素。例3.6 先建立5

51、5;5矩陣A,然后將A的第一行元素乘以1,第二行乘以2,第五行乘以5。clc;A=17,0,1,0,15; 23,5,7,14,16;.4,0,13,0,22; 10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A2三角陣 p44三角陣分為上三角陣和下三角陣。Ø 上三角陣 矩陣的對角線以下的元素全為0的一種矩陣。Ø 下三角陣 對角線以上的元素全為0的一種矩陣。(1) 上三角矩陣Ø triu(A)求矩陣A的上三角陣。Ø triu(A,k) 求矩陣A的第k條對角線以上的元素。triu(A,0)功能同triu(A)。clc;

52、A=7,13,-28;2,-9,8;0,34,5B=triu(A)C=1,32,1,0,5; 3,5,17,4,16;.4,0,-13,0,42; 70,11,9,21,3;.11,63,5,2,99D=triu(C,2)(2) 下三角矩陣Ø tril(A)求矩陣A的下三角陣。Ø tril(A,k)求矩陣A的第k條對角線以下的元素。tril(A,0)功能同tril(A)。clc;A=7,13,-28;2,-9,8;0,34,5B=tril(A)C=1,32,1,0,5; 3,5,17,4,16;.4,0,-13,0,42; 70,11,9,21,3;.11,63,5,2,99D=tril(C,-2)3.2.2 矩陣的轉(zhuǎn)置與旋轉(zhuǎn)1矩陣的轉(zhuǎn)置轉(zhuǎn)置運(yùn)算符是單撇號: '。clc;A=71,3,-8;2,-9

溫馨提示

  • 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

提交評論