《MATLAB編程及應(yīng)用》全套教學(xué)課件_第1頁(yè)
《MATLAB編程及應(yīng)用》全套教學(xué)課件_第2頁(yè)
《MATLAB編程及應(yīng)用》全套教學(xué)課件_第3頁(yè)
《MATLAB編程及應(yīng)用》全套教學(xué)課件_第4頁(yè)
《MATLAB編程及應(yīng)用》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩555頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

MATLAB編程及應(yīng)用全套可編輯PPT課件

1初識(shí)MATLAB第章全套可編輯PPT課件

1.1MATLAB簡(jiǎn)介MATLAB是Matrixlaboratory的縮寫(xiě),即矩陣實(shí)驗(yàn)室。矩陣實(shí)驗(yàn)室MATLAB包含數(shù)百個(gè)內(nèi)部函數(shù)。內(nèi)部函數(shù)MATLAB、Mathematica和Maple。三大數(shù)學(xué)軟件MATLAB包含40多種工具箱。分為功能性工具箱和領(lǐng)域型工具箱。工具箱20世紀(jì)70年代子程序庫(kù):CleveMoler博士開(kāi)發(fā)了EISPACK和LINPACK程序庫(kù)用于特征值求解和解線(xiàn)性方程。1.2MATLAB的產(chǎn)生與發(fā)展20世紀(jì)70年代后期MATLAB誕生:開(kāi)發(fā)子程序庫(kù)與FORTRAN的接口程序,取名MATLAB。1983年春第二代專(zhuān)業(yè)版誕生:①基于C語(yǔ)言開(kāi)發(fā);

②具備了數(shù)值計(jì)算和數(shù)據(jù)圖示化功能。1984年MathWorks公司成立:MATLAB推向市場(chǎng);繼續(xù)進(jìn)行研究和開(kāi)發(fā)。1992年MATLAB4.0版本推出:之后陸續(xù)推出4.2、5.0、5.3、6.5等版本,直至7.0版本。時(shí)至今日每半年更新一次版本:以該年年份命名,并以a和b區(qū)分上半年和下半年。1.3MATLAB用戶(hù)界面當(dāng)前文件夾窗口命令行窗口工作區(qū)窗口1.3MATLAB用戶(hù)界面命令行窗口:用戶(hù)交互窗口,在提示符“>>”后輸入命令?;剀?chē)后,執(zhí)行并在此顯示執(zhí)行結(jié)果。工作區(qū):存儲(chǔ)MATLAB創(chuàng)建的或從數(shù)據(jù)文件、其他程序?qū)氲淖兞?。在命令行提示符?gt;>”后鍵入語(yǔ)句;按Enter鍵,MATLAB會(huì)將變量添加到工作區(qū)中,并在命令行窗口中顯示結(jié)果。

1.3.1命令的執(zhí)行>>a=1a=1>>b=2b=2>>c=a+bc=3>>d=cos(a)d=0.5403若要?jiǎng)?chuàng)建更多變量,則只需可在命令行提示符后依次鍵入即可。

1.3.1命令的執(zhí)行>>b=2b=2>>c=a+bc=3>>d=cos(a)d=0.5403如果未指定輸出變量,那么MATLAB將使用變量ans(answer的縮略形式)來(lái)存儲(chǔ)計(jì)算結(jié)果。

1.3.1命令的執(zhí)行>>sin(a)ans=0.8415如果語(yǔ)句以分號(hào)結(jié)束,那么MATLAB會(huì)執(zhí)行計(jì)算,但不在命令行窗口中顯示輸出。>>e=a*b;使用whos可查看工作區(qū)的內(nèi)容。

1.3.1命令的執(zhí)行>>whosNameSizeBytesClassAttributesa1x18doubleans1x18doubleb1x18doublec1x18double【注意】退出MATLAB后,工作區(qū)中的變量不會(huì)保留。此時(shí),可以使用save命令保存數(shù)據(jù)以供將來(lái)使用。>>savemyfile.mat

1.3.1命令的執(zhí)行【注意】退出MATLAB后,工作區(qū)中的變量不會(huì)保留。此時(shí),可以使用save命令保存數(shù)據(jù)以供將來(lái)使用。>>savemyfile.mat圖1-2當(dāng)前工作區(qū)中的變量

1.3.1命令的執(zhí)行通過(guò)保存操作,系統(tǒng)會(huì)使用.mat擴(kuò)展名將工作區(qū)中的變量保存在當(dāng)前工作文件夾中一個(gè)名為“.MAT”的壓縮文件中。使用load命令可以將MAT文件中的數(shù)據(jù)還原到工作區(qū)中。>>loadmyfile.mat【提問(wèn)】要清除工作區(qū)中的所有變量,應(yīng)該用什么命令呢?【練習(xí)】請(qǐng)先將工作區(qū)保存,然后清除工作區(qū)中的全部變量,最后使用load命令將數(shù)據(jù)還原到工作區(qū)中。

1.3.2光標(biāo)與命令行的操作利用方向鍵“↑”“↓”,可以重新調(diào)用以前的(歷史)命令。再按Enter鍵,即可執(zhí)行前一次的命令。在空白命令行中按“↑”鍵,可以調(diào)出歷史命令。

1.3.2光標(biāo)與命令行的操作而“↓”鍵的功用則是在按下它并調(diào)出歷史命令后,與“↑”鍵配合使用,對(duì)歷史命令進(jìn)行選擇,選定后按Enter鍵執(zhí)行該命令。也可在鍵入命令的前幾個(gè)字符后按“↑”鍵。例如,要重新調(diào)用歷史命令b=2,在命令行鍵入“b=”后,按“↑”鍵,該歷史命令被選中,鍵入的內(nèi)容“b=”被黃色標(biāo)記,同時(shí),歷史命令“b=2”被回調(diào)至命令行。

1.3.2光標(biāo)與命令行的操作常用操作鍵及快捷鍵:操作鍵功能說(shuō)明操作鍵功能說(shuō)明↑Ctrl+1前尋式調(diào)回歷史命令行EscCtrl+u清除當(dāng)前行的全部?jī)?nèi)容↓后尋式調(diào)回歷史命令行BackSpace刪除光標(biāo)左邊的字符←在當(dāng)前行中左移光標(biāo)Delete刪除光標(biāo)右邊的字符→在當(dāng)前行中右移光標(biāo)Ctrl+←光標(biāo)左移一個(gè)單詞PageUp前尋式翻閱當(dāng)前窗口中的內(nèi)容Ctrl+→光標(biāo)右移一個(gè)單詞PageDown后尋式翻閱當(dāng)前窗口中的內(nèi)容Ctrl+Z刪除光標(biāo)所在命令行內(nèi)容Home使光標(biāo)移到當(dāng)前行的首端Ctrl+A全選當(dāng)前窗口內(nèi)容End使光標(biāo)移到當(dāng)前行的末端Alt+BackSpace恢復(fù)上一次刪除

1.3.3工作窗與命令行的操作MATLAB除提供常用的操作鍵之外,還提供了許多通過(guò)鍵盤(pán)在命令行鍵入的控制命令??刂泼詈xclc清除命令行窗口中的所有顯示內(nèi)容clear清除內(nèi)存中的變量和函數(shù)clf清除MATLAB的當(dāng)前圖形窗口中的圖形dir列出指定目錄下的文件和子目錄清單cdcd后加路徑,改變當(dāng)前工作子目錄;cd+Enter鍵,顯示當(dāng)前工作子目錄disp在運(yùn)行中顯示變量和文字內(nèi)容:disp(x)或disp('字符')type顯示所有指定文件的全部?jī)?nèi)容:typefilenamehold控制當(dāng)前圖像窗口對(duì)象是否被刷新,常與holdon和holdoff配合使用home發(fā)送光標(biāo)復(fù)位命令,顯示為清空屏幕而不刪除任何文本1.4MATLAB幫助系統(tǒng)010203利用help指令利用菜單欄中的“幫助”(Help)按鈕利用lookfor指令在MATLAB系統(tǒng)中,相關(guān)的線(xiàn)上(On-Line)幫助方式有一下3種?!咀⒁狻縈ATLAB幫助系統(tǒng)中還有一些在線(xiàn)學(xué)習(xí)和視頻可供初學(xué)者快速入門(mén)??赏ㄟ^(guò)幫助系統(tǒng)多多嘗試和發(fā)掘,學(xué)會(huì)使用幫助系統(tǒng)學(xué)習(xí)和查詢(xún)相關(guān)學(xué)習(xí)內(nèi)容,可以在學(xué)習(xí)MATLAB的過(guò)程中達(dá)到事半功倍的效果。利用菜單欄中的“幫助”按鈕查詢(xún)查詢(xún)界面1.4MATLAB幫助系統(tǒng)MATLAB編程及應(yīng)用2MATLAB基本計(jì)算和基礎(chǔ)知識(shí)第章使用MATLAB進(jìn)行數(shù)學(xué)基本計(jì)算就像用計(jì)算器一樣方便、簡(jiǎn)單;在命令行窗口的命令行提示符后鍵入算式,MATLAB就會(huì)把計(jì)算結(jié)果顯示出來(lái)。>>1+2+3+4+5+6ans=21>>1/2ans=0.50002.1

基本計(jì)算入門(mén)實(shí)例算術(shù)運(yùn)算:加(+)、減(-)、乘(*)、除(/或\)及冪次方(^);>>((1+4)*5-12)/2ans=6.50002.1

基本計(jì)算入門(mén)實(shí)例優(yōu)先級(jí):如果有括號(hào),那么括號(hào)優(yōu)先執(zhí)行,而且MATLAB允許括號(hào)嵌套。復(fù)數(shù)的計(jì)算:MATLAB還具有超越計(jì)算器的功能,它認(rèn)識(shí)復(fù)數(shù),能夠進(jìn)行復(fù)數(shù)的計(jì)算。>>(2+3i)+(4+5i)ans=6.0000+8.0000i三角函數(shù):可以如計(jì)算器般進(jìn)行三角函數(shù)的運(yùn)算。>>sin(pi/3)ans=0.86602.1

基本計(jì)算入門(mén)實(shí)例變量是指在程序執(zhí)行過(guò)程中其值可以變化的量。2.2

變量變量用戶(hù)自定義變量系統(tǒng)預(yù)定義變量2.2.1用戶(hù)自定義變量以非數(shù)字的符號(hào)來(lái)表達(dá),一般用拉丁字母來(lái)表示。變量的定義不需要特別聲明數(shù)據(jù)類(lèi)型,其定義與賦值是同時(shí)完成的。>>a=3a=3定義了一個(gè)變量a,同時(shí)將其賦值為3。在對(duì)變量進(jìn)行命名時(shí),需要滿(mǎn)足下列4條規(guī)則。變量名區(qū)分大小寫(xiě),如“a”和“A”是不同的變量。變量名不能超過(guò)63個(gè)字符,第63個(gè)字符后的字符被忽略。變量名必須以字母開(kāi)頭,其組成可以是任意字母、數(shù)字或下畫(huà)線(xiàn),但不能含有空格和標(biāo)點(diǎn)符號(hào),如“6”“abc”“ac%b”都是不合法的變量名。關(guān)鍵詞、系統(tǒng)命名函數(shù)等不能作為變量名,如“if”“while”等。2.2.1用戶(hù)自定義變量2.2.1用戶(hù)自定義變量>>a=3a=3>>b=5*ab=153變量a15變量b5*3=15

先定義變量a,并賦值3;再定義變量b,同時(shí)調(diào)用變量a的當(dāng)前值,計(jì)算后將結(jié)果賦值給變量b2.2.2系統(tǒng)預(yù)定義變量MATLAB系統(tǒng)提供了一些用戶(hù)不能清除的特殊變量,即系統(tǒng)預(yù)定義變量。

MATALB系統(tǒng)預(yù)定義變量及其含義預(yù)定義變量名含義ans運(yùn)算結(jié)果默認(rèn)變量名pi圓周率eps浮點(diǎn)數(shù)的精度,也是系統(tǒng)運(yùn)算時(shí)確定的極小值nan或NAN非數(shù),如0/0inf無(wú)窮大,如1/0i或j虛數(shù)標(biāo)志,i=j=sqrt(-1)2.3數(shù)據(jù)類(lèi)型MATLAB數(shù)據(jù)類(lèi)型數(shù)值類(lèi)型邏輯類(lèi)型字符串類(lèi)型單元類(lèi)型結(jié)構(gòu)類(lèi)型2.3.1數(shù)值類(lèi)型數(shù)值類(lèi)型分類(lèi)方法根據(jù)數(shù)據(jù)存儲(chǔ)空間和方式分類(lèi)根據(jù)數(shù)據(jù)結(jié)構(gòu)分類(lèi)整型浮點(diǎn)型標(biāo)量數(shù)組矩陣2.3.1數(shù)值類(lèi)型實(shí)數(shù)的數(shù)值類(lèi)型分類(lèi)類(lèi)型子類(lèi)型符號(hào)位數(shù)用法整型有符號(hào)整型int88a=int32(12)

int1616

int3232

int6464

無(wú)符號(hào)整型uint88a=uint32(12)

uint1616

uint3232

uint6464

浮點(diǎn)型單精度浮點(diǎn)型single32a=single(12.34)

雙精度浮點(diǎn)型double64a=12.342.3.1數(shù)值類(lèi)型【注意】(1)系統(tǒng)默認(rèn)的數(shù)值類(lèi)型是雙精度浮點(diǎn)型,因此,在使用double時(shí),可以省略double符號(hào)。(2)當(dāng)double類(lèi)型的數(shù)值與其他類(lèi)型的數(shù)值進(jìn)行運(yùn)算時(shí),結(jié)果為其他類(lèi)型的數(shù)值,single類(lèi)型的數(shù)值不能和整型直接進(jìn)行運(yùn)算,各種不同位數(shù)的整型之間也不能直接進(jìn)行運(yùn)算。2.3.1數(shù)值類(lèi)型因?yàn)橄到y(tǒng)默認(rèn)的數(shù)據(jù)類(lèi)型是雙精度浮點(diǎn)型,所以在將變量設(shè)置為整數(shù)時(shí),需要進(jìn)行轉(zhuǎn)換。函數(shù)運(yùn)算法則例子floor向下取整floor(1.4)=1,floor(3.5)=3,floor(-3.5)=-4ceil向上取整ceil(1.4)=2,ceil(3.5)=4,ceil(-3.5)=-3round取最接近的整數(shù),若小數(shù)部分是0.5,則向絕對(duì)值大的方向取整round(1.4)=1,round(3.5)=4,round(-3.5)=-4fix向0取整fix(1.4)=1,fix(3.5)=3,fix(-3.5)=-3將雙精度浮點(diǎn)型轉(zhuǎn)化為整數(shù)的轉(zhuǎn)化函數(shù)2.3.1數(shù)值類(lèi)型復(fù)數(shù)由實(shí)部和虛部?jī)刹糠謽?gòu)成,在MATLAB中,字符i和j等價(jià),默認(rèn)作為虛部標(biāo)志,數(shù)值與符號(hào)之間的乘號(hào)可以省略。>>a=1+2ia=1.0000+2.0000i>>b=3+4*jb=3.0000+4.0000i2.3.2邏輯類(lèi)型MATLAB本身并沒(méi)有專(zhuān)門(mén)提供邏輯類(lèi)型,而借用整型來(lái)描述邏輯類(lèi)型數(shù)據(jù)。MATLAB規(guī)定,邏輯數(shù)據(jù)真(true)為1、邏輯數(shù)據(jù)假(false)為0。>>2<3ans=logical1>>2>3ans=logical02.3.3字符串類(lèi)型MATLAB中的字符串是包含在單引號(hào)中的字符集合。>>s='你好,MATLAB'%定義字符串變量ss='你好,MATLAB'【注意】在MATLAB中,所有字符串都用英文半角單引號(hào)標(biāo)識(shí),字符串和字符數(shù)組是等價(jià)的,字符串中的每個(gè)字符(包括空格)都是字符數(shù)組的一個(gè)元素。利用length函數(shù)可以求取字符串的長(zhǎng)度。length('你好,MATLAB!')ans=102.3.4單元類(lèi)型單元類(lèi)型是MATLAB中比較特殊的一種數(shù)據(jù)類(lèi)型,其本質(zhì)也是數(shù)組。一般數(shù)組:所有數(shù)組元素只能是同一種數(shù)據(jù)類(lèi)型單元數(shù)組:可以把不同的數(shù)據(jù)類(lèi)型組合在一起,從而形成一種比較復(fù)雜的數(shù)組。2.3.4單元類(lèi)型創(chuàng)建單元類(lèi)型數(shù)組的方法:(1)通過(guò)賦值語(yǔ)句創(chuàng)建單元類(lèi)型數(shù)組:?jiǎn)卧?lèi)型數(shù)組使用花括號(hào)“{}”來(lái)創(chuàng)建,使用“,”或空格來(lái)分隔單元,使用“;”來(lái)分行。>>A={'x',[2;3;6];10,2*pi}A=2×2cell數(shù)組{'x'}{3×1double}{[10]}{[6.2832]}2.3.4單元類(lèi)型(2)使用cell函數(shù)創(chuàng)建空單元類(lèi)型數(shù)組:先使用cell函數(shù)創(chuàng)建空單元類(lèi)型數(shù)組,預(yù)先分配存儲(chǔ)空間;然后逐個(gè)對(duì)元素進(jìn)行賦值。>>B=cell(1,2) %創(chuàng)建空單元類(lèi)型數(shù)組BB=1×2cell數(shù)組{0×0double}{0×0double}>>B(1,1)={'MATLAB'};B{1,2}='好用!'; %為單元類(lèi)型數(shù)組元素分別賦值B=1×2cell數(shù)組{'MATLAB'}{'好用!'}>>B(1,1)={'MATLAB'};B{1,2}='好用!'; %為單元類(lèi)型數(shù)組元素分別賦值B=1×2cell數(shù)組{'MATLAB'}{'好用!'}2.3.5結(jié)構(gòu)類(lèi)型結(jié)構(gòu)類(lèi)型是另一種可以將不同的數(shù)據(jù)類(lèi)型組合在一起的特殊數(shù)據(jù)類(lèi)型,其本質(zhì)依然是數(shù)組。創(chuàng)建單元類(lèi)型數(shù)組的方法:(1)使用賦值語(yǔ)句創(chuàng)建結(jié)構(gòu)類(lèi)型數(shù)組并賦值;(2)使用struct函數(shù)創(chuàng)建結(jié)構(gòu)類(lèi)型數(shù)組并賦值。2.3.5結(jié)構(gòu)類(lèi)型(1)使用賦值語(yǔ)句創(chuàng)建結(jié)構(gòu)類(lèi)型數(shù)組并賦值;結(jié)構(gòu)類(lèi)型變量的使用必須指出結(jié)構(gòu)的屬性名,并以操作符“.”來(lái)連接結(jié)構(gòu)變量名與屬性名,對(duì)該屬性進(jìn)行直接賦值,如A.b1、B(2,3).a3等。結(jié)構(gòu)類(lèi)型數(shù)組不同元素的類(lèi)型可以不同。>>student.Name='小明';>>student.Age=18;>>student.Score=88student=包含以下字段的struct:Name:'小明'Age:18Score:882.3.5結(jié)構(gòu)類(lèi)型(2)使用struct函數(shù)創(chuàng)建結(jié)構(gòu)類(lèi)型數(shù)組并賦值。采用struct函數(shù)預(yù)先分配存儲(chǔ)空間并賦值,具體形式為:>>student=struct('Name','小明','Age',18,'Score',88)student=包含以下字段的struct:Name:'小明'Age:18Score:88結(jié)構(gòu)類(lèi)型變量=struct(元素名1,元素值1,元素名2,元素值2,…)。例如:2.4.1算數(shù)運(yùn)算MATLAB運(yùn)算包括算數(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算、位運(yùn)算和集合運(yùn)算五大類(lèi)。其中,算數(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算為MATLAB的基本運(yùn)算。MATLAB運(yùn)算算數(shù)運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算位運(yùn)算集合運(yùn)算2.4.1算數(shù)運(yùn)算運(yùn)算符含義+加-減*乘\矩陣左除/矩陣右除^矩陣冪次方.*數(shù)組乘./數(shù)組右除.\數(shù)組左除.^數(shù)組冪次方MATLAB的算數(shù)運(yùn)算符及其含義2.4.1算數(shù)運(yùn)算【注意】MATLAB中的算數(shù)運(yùn)算與數(shù)學(xué)上的算數(shù)運(yùn)算相比,需要注意和區(qū)分以下不同點(diǎn)。(1)除法分為左除和右除。(2)乘、左除、右除和冪次方運(yùn)算將矩陣看作一個(gè)整體,遵循矩陣運(yùn)算規(guī)則;數(shù)組乘、數(shù)組冪次方、數(shù)組左除和數(shù)組右除按數(shù)組元素進(jìn)行相應(yīng)的運(yùn)算?!纠?-1】求解算數(shù)表達(dá)式[1+2×(11-4)]+23的值。>>(1+2*(11-4))+2^3ans=232.4.2關(guān)系運(yùn)算關(guān)系運(yùn)算是用來(lái)判斷運(yùn)算對(duì)象之間關(guān)系的運(yùn)算,一共有6種。MATLAB的關(guān)系運(yùn)算符及其含義運(yùn)算符含義<小于<=小于或等于>大于>=大于或等于==等于~=不等于2.4.3邏輯運(yùn)算MATLAB中的基本邏輯運(yùn)算符有3種。MATLAB的邏輯運(yùn)算符及其含義運(yùn)算符含義&與|或~非2.5MATLAB的標(biāo)點(diǎn)符號(hào)和特殊字符MATLAB中有一些被賦予特殊意義的符號(hào),有一定的特殊含義。MATLAB的標(biāo)點(diǎn)符號(hào)和特殊字符符號(hào)名稱(chēng)含義:冒號(hào)有多種運(yùn)算功能,用于定義行向量或截取指定矩陣中的部分=等號(hào)為變量賦值。等號(hào)左邊為變量名、右邊為變量的值;分號(hào)區(qū)別矩陣的行;命令行不輸出回顯信息.小數(shù)點(diǎn)描述小數(shù)%百分號(hào)注釋語(yǔ)句,增加程序的可讀性…續(xù)行符號(hào)續(xù)行,逗號(hào)矩陣每行元素之間的分隔符'單引號(hào)矩陣轉(zhuǎn)置運(yùn)算、復(fù)數(shù)的共軛值、字符串定義等!感嘆號(hào)調(diào)用系統(tǒng)操作命令[]方括號(hào)矩陣的定義()圓括號(hào)指定函數(shù)中參量的輸入{}花括號(hào)構(gòu)成單元類(lèi)型數(shù)組2.6常用數(shù)學(xué)函數(shù)在MATLAB計(jì)算中,常常要用到一些數(shù)學(xué)函數(shù)。函數(shù)含義abs(x)對(duì)自變量取絕對(duì)值sqrt(x)對(duì)自變量開(kāi)二次方exp(x)自然底數(shù)e的x次方sin(x)x的正弦值[其中x為弧度制,如果需要使用角度制,則采用sind(x)]asin(x)x的反正弦值(其中x為弧度制,角度制同上)cos(x)x的余弦值(其中x為弧度制,角度制同上)acos(x)x的反余弦值(其中x為弧度制,角度制同上)tan(x)x的正切值(其中x為弧度制,角度制同上)atan(x)x的反正切值(其中x為弧度制,角度制同上)log(x)自然對(duì)數(shù):求以e為底x的對(duì)數(shù)log10(x)常用對(duì)數(shù):求以10為底x的對(duì)數(shù)log2(x)求以2為底x的對(duì)數(shù)2.6常用數(shù)學(xué)函數(shù)在MATLAB計(jì)算中,常常要用到一些數(shù)學(xué)函數(shù)。函數(shù)含義round(x)、fix(x)對(duì)x進(jìn)行取整。其中,round為四舍五入,fix為向下取整mod(x,y)求x/y的余數(shù)imag(x)、real(x)求x的虛部、實(shí)部find(x)尋找變量round(x)、fix(x)對(duì)x進(jìn)行取整。其中,round為四舍五入,fix為向下取整find(x)尋找變量sort(x)將數(shù)組元素按照從小到大排序sum(x)數(shù)組元素求和roots(x)求解多項(xiàng)式的根axis([x1,x2,y1,y2])設(shè)置坐標(biāo)軸范圍2.7函數(shù)語(yǔ)句在MATLAB中,一條命令就是一條語(yǔ)句,其格式與數(shù)學(xué)表達(dá)式十分接近。用戶(hù)在命令行窗口的命令提示符“>>”后輸入語(yǔ)句并按Enter鍵后,該語(yǔ)句就在MATLAB中運(yùn)行,并在命令行窗口返回運(yùn)行結(jié)果。函數(shù)語(yǔ)句表達(dá)式中一般包括運(yùn)算符、標(biāo)點(diǎn)符號(hào)和常用函數(shù),表達(dá)式按照從左向右的順序執(zhí)行。運(yùn)算的優(yōu)先級(jí)遵循數(shù)學(xué)運(yùn)算的優(yōu)先級(jí)規(guī)定,即冪運(yùn)算優(yōu)先,其次是乘除法,最后是加減法。若運(yùn)算中有圓括號(hào),則圓括號(hào)優(yōu)先?!咀⒁狻勘磉_(dá)式中的圓括號(hào)必須使用半角符號(hào)。2.7函數(shù)語(yǔ)句【例2-2】求

的值,并把它賦值給變量。>>a=(5*(7-2)^2)/(2/3)a=187.5000

在MATLAB中“變量=表達(dá)式”形式表示將表達(dá)式運(yùn)算后賦值給變量。2.7函數(shù)語(yǔ)句>>a=8;b=7;c=6; %為變量a、b、c賦值>>s=(a+b+c)/2; %定義s為三角形的半周長(zhǎng)>>S=sqrt(s*(s-a)*(s-b)*(s-c)) %利用海倫公式求面積S=20.3332為了增加代碼的可讀性,通常通過(guò)對(duì)代碼增添注釋來(lái)使代碼更容易讀懂,通過(guò)“%”表明標(biāo)注開(kāi)始,%后的所有內(nèi)容均為注釋內(nèi)容,MATLAB在運(yùn)行時(shí)會(huì)自動(dòng)忽略%后的內(nèi)容?!纠?-3】設(shè)三角形的3條邊的邊長(zhǎng)為a=8、b=7、c=6,求此三角形的面積?!痉治觥?/p>

,其中MATLAB編程及應(yīng)用3MATLAB數(shù)值計(jì)算第章矩陣是MATLAB進(jìn)行數(shù)據(jù)處理和運(yùn)算的基本元素,即最基本的MATLAB數(shù)據(jù)結(jié)構(gòu)體就是矩陣。矩陣是按行和列排列的數(shù)據(jù)元素的二維矩形數(shù)組。一般的數(shù)學(xué)運(yùn)算也都可以轉(zhuǎn)化成相應(yīng)的矩陣運(yùn)算來(lái)處理。>>clear>>A=100;>>whos%列出當(dāng)前工作空間中所有變量的的變量名、尺寸、所占字節(jié)數(shù)及數(shù)據(jù)類(lèi)型等NameSizeBytesClassAttributesA1x18double3.1

數(shù)據(jù)擬合MATLAB直接輸入法創(chuàng)建矩陣步驟:(1)用方括號(hào)“[]”把所有的矩陣元素括起來(lái)。(2)同一行的不同元素用逗號(hào)或空格來(lái)分隔。(3)用分號(hào)“;”指定一行元素的結(jié)束來(lái)分隔行,或者用回車(chē)符代替分號(hào)。(4)矩陣元素可以是實(shí)數(shù)或復(fù)數(shù),也可以是表達(dá)式。如果是表達(dá)式,那么系統(tǒng)將自動(dòng)計(jì)算表達(dá)式的結(jié)果,并賦值給相應(yīng)的元素。>>a=[123]%構(gòu)造1×3的矩陣a或行向量aa=123>>x=[123;456]%構(gòu)造2×3的矩陣xx=1234563.1.1利用直接輸入法創(chuàng)建矩陣MATLAB中有許多內(nèi)部函數(shù),可以創(chuàng)建具有特定值或特定結(jié)構(gòu)的矩陣。>>A=zeros(3,2)%利用zeros函數(shù)創(chuàng)建3×2全零矩陣A=000000>>B=ones(2,4)

%利用ones函數(shù)創(chuàng)建2×4全幺矩陣B=111111113.1.2利用函數(shù)創(chuàng)建矩陣3.1.2利用函數(shù)創(chuàng)建矩陣函數(shù)功能zeros(m,n)創(chuàng)建一個(gè)m行n列的全部元素為0的矩陣ones(m,n)創(chuàng)建一個(gè)m行n列的全部元素為1的矩陣eye(m,n)創(chuàng)建一個(gè)m行n列的單位矩陣rand(m,n)創(chuàng)建一個(gè)m行n列的0~1均勻分布的隨機(jī)矩陣randn(m,n)創(chuàng)建一個(gè)m行n列的均值為0、方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣linspace(a,b,n)創(chuàng)建一個(gè)在[a,b]區(qū)間上線(xiàn)性n等分的矩陣[]創(chuàng)建空矩陣diag(X)若X是矩陣,則diag(X)為X的主對(duì)角線(xiàn)向量;若X是向量,則diag(X)產(chǎn)生以X為主對(duì)角線(xiàn)的對(duì)角矩陣tril(A)提取一個(gè)矩陣的下三角部分triu(A)提取一個(gè)矩陣的上三角部分創(chuàng)建矩陣的函數(shù)3.1.2利用函數(shù)創(chuàng)建矩陣【例3-1】分別構(gòu)建隨機(jī)矩陣x和y,要求x是在區(qū)間[20,50]內(nèi)均勻分布的3階隨機(jī)矩陣,y是均值為0.6、方差為0.1的3階正態(tài)分布隨機(jī)矩陣。>>x=20+(50-20)*rand(3)x=25.897934.198737.557927.532530.549836.491738.481344.924947.5158>>y=0.6+sqrt(0.1)*randn(3)y=0.34560.52290.23700.82030.66820.63320.86410.23130.82843.1.3利用M文件創(chuàng)建矩陣對(duì)于比較大且比較復(fù)雜的矩陣,可以為它專(zhuān)門(mén)建立一個(gè)M文件。MATLAB直接輸入法創(chuàng)建矩陣步驟:(1)使用編輯程序或MATLAB文本編輯器輸入文件內(nèi)容。(2)把輸入的內(nèi)容以M文件方式存盤(pán)。(3)在MATLAB命令行窗口中輸入文件名,就會(huì)自動(dòng)建立一個(gè)矩陣,可供以后顯示和調(diào)用。3.1.3利用M文件創(chuàng)建矩陣x=[123]例如,打開(kāi)MATLAB文本編輯器,輸入:保存文件,命名文件名為mymatrix.m;在命令行窗口的命令行提示符后輸入mymatrix,按Enter鍵后可生成以x為變量名的矩陣。>>mymatrixx=1233.1.4矩陣元素與矩陣元素變量MATLAB在定義矩陣的同時(shí)衍生出了矩陣元素變量??梢杂孟聵?biāo)來(lái)表示矩陣元素,如:A(2,3)表示A矩陣的第2行第3列的元素;A(:,1)表示矩陣A的第1列的元素;A(2,:)表示矩陣A的第2行的元素。3.1.4矩陣元素與矩陣元素變量矩陣元素可以修改。有兩種方法:方法一,可以通過(guò)界面的可視化操作直接編輯矩陣的某個(gè)元素。先在工作區(qū)中找到定義的矩陣變量名,然后雙擊變量名進(jìn)入變量編輯界面。3.1.4矩陣元素與矩陣元素變量單擊需要修改的元素即可進(jìn)行修改。例如,選擇元素A(1,3),將其值修改為10。在命令行窗口的命令行提示符后鍵入A,可查看修改后的矩陣A。>>AA=12104567893.1.4矩陣元素與矩陣元素變量方法二,使用MATLAB命令訪問(wèn)數(shù)組的某個(gè)元素,采用“矩陣名(序號(hào)1,序號(hào)2)=數(shù)據(jù)”的方式來(lái)修改矩陣元素。>>A=[123;456;789] %定義3×3的矩陣AA=123456789>>A(2,1)=5; %修改元素變量A(2,1)的值為53.1.4矩陣元素與矩陣元素變量【例3-2】輸入矩陣A,并將矩陣A的第1行和第2行元素對(duì)調(diào),其中矩陣

。>>A=[1234;5678;9101112] %輸入矩陣AA=123456789101112>>b=A(1,:) %取出矩陣A的第1行元素,賦值給變量bb=1234>>A(1,:)=A(2,:) %將第2元素賦值給第1行元素A=567856789101112>>A(2,:)=b%將原始矩陣A的第1行元素賦值給第2行元素A=5678123491011123.1.5串聯(lián)矩陣MATLAB可以使用方括號(hào)將現(xiàn)有矩陣連接在一起構(gòu)建新的矩陣。這種創(chuàng)建矩陣的方法稱(chēng)為串聯(lián)。>>A=ones(1,4);>>B=zeros(1,4);>>C=[AB]C=11110000>>D=[A;B]D=11110000要將A和B排列為一個(gè)矩陣的兩行,可以使用分號(hào):3.1.5串聯(lián)矩陣要串聯(lián)兩個(gè)矩陣,它們的大小必須兼容:在水平串聯(lián)矩陣時(shí),它們的行數(shù)必須相同;在垂直串聯(lián)矩陣時(shí),它們的列數(shù)必須相同。>>A=ones(2,3)A=111111>>B=zeros(2,2)B=0000>>C=[AB]C=1110011100>>D=[A;[B,[0;0]]]D=1111110003.1.6擴(kuò)展矩陣通過(guò)將一個(gè)或多個(gè)元素置于現(xiàn)有行和列索引邊界之外,可以將它們添加到矩陣中。MATLAB會(huì)自動(dòng)用0填充矩陣,使其保持為矩形。>>A(3,4)=1A=102030060708000001還可以通過(guò)在現(xiàn)有索引范圍之外插入新矩陣來(lái)擴(kuò)展其大小。>>A(4:5,5:6)=[23;45]A=10203000060708000000

0

1

0000

0

0

2300

0

0

453.1.7矩陣運(yùn)算矩陣運(yùn)算是根據(jù)矩陣運(yùn)算規(guī)則進(jìn)行的運(yùn)算,MATLAB的處理方法與線(xiàn)性代數(shù)中的相同。運(yùn)算符用途說(shuō)明+加法A+B表示將A和B加在一起-減法A-B表示從A中減去B*矩陣乘法A*B表示A和B按矩陣乘法規(guī)則進(jìn)行運(yùn)算^矩陣冪次A^k表示矩陣A的k次冪運(yùn)算/矩陣右除A/B表示矩陣A右除B,即AB-1\矩陣左除A\B表示矩陣A左除除B,即A-1B'矩陣轉(zhuǎn)置A'表示A的列元素與行元素互換3.1.7矩陣運(yùn)算(1)矩陣的加減運(yùn)算矩陣的加減是矩陣與矩陣對(duì)應(yīng)元素的加減,其運(yùn)算符是“+”和“-”。進(jìn)行相加減的矩陣的階數(shù)必須相同。如果階數(shù)不同,則系統(tǒng)顯示出錯(cuò)信息。MATLAB檢查矩陣階數(shù)的語(yǔ)句是size。例如>>A=[1234;5678;9101112]%輸入矩陣AA=123456789101112>>[m,n]=size(A) %檢查矩陣A的階數(shù)m=3n=43.1.7矩陣運(yùn)算【例3-3】計(jì)算C=A+B,D=A-B,E=A+3。其中,,。>>A=[1234;5678;9101112]%輸入矩陣AA=123456789101112>>B=[2368;1357;1122]%輸入矩陣BB=236813571122>>C=A+B%A、B對(duì)應(yīng)元素相加C=3591269121510111314>>D=A-B%A、B對(duì)應(yīng)元素相減D=-1-1-3-4432189910>>E=A+3%矩陣與常量相加:每個(gè)元素進(jìn)行加3的運(yùn)算E=4567000189101112131415>>A=[123;567;91011]; %輸入矩陣A>>B=[159;2610;3711]; %輸入矩陣B>>C=A*B %矩陣A與矩陣B相乘C=143862381101862182302>>D=A*3 %矩陣A與標(biāo)量3相乘D=369151821273033(2)矩陣的乘法運(yùn)算矩陣乘法的運(yùn)算符是“*”。只有當(dāng)前一矩陣的列數(shù)與后一矩陣的行數(shù)相等或至少其中一個(gè)為標(biāo)量時(shí),才能進(jìn)行乘法運(yùn)算;否則,系統(tǒng)會(huì)提示錯(cuò)誤信息?!纠?-4】計(jì)算C=A+B,D=A-B,E=A+3。其中,

,

。3.1.7矩陣運(yùn)算(3)矩陣的除法運(yùn)算矩陣的除法運(yùn)算分為左除和右除兩種,其運(yùn)算符分別為“\”和“/”。A\B=A-1BB/A=BA-1【注意】A矩陣必須可逆。即①A為方陣;②A的各行(列)線(xiàn)性無(wú)關(guān);③行列式的值不等于0。MATLAB提供了函數(shù)inv用以求解逆矩陣、函數(shù)det用以求解行列式的值、函數(shù)eye用于生成單位矩陣。3.1.7矩陣運(yùn)算【例3-5】求矩陣

的行列式的值,當(dāng)其行列式的值不為0時(shí),求其逆矩陣。>>A=[21-3;431;1-42];>>det(A)ans=70>>inv(A)ans=0.14290.14290.1429-0.10000.1000-0.2000-0.27140.12860.02863.1.7矩陣運(yùn)算>>A=[123;301;421];>>det(B) %求矩陣B的行列式的值ans=0>>inv(B) %B矩陣的行列式的值為0,數(shù)學(xué)上%的逆陣并不存在,驗(yàn)證MATLAB對(duì)此的處理。警告:矩陣為奇異工作精度。ans=InfInfInfInfInfInfInfInfInf>>B=[555;555;555];3.1.7矩陣運(yùn)算當(dāng)數(shù)學(xué)上的逆矩陣并不存在時(shí),MATLAB并不會(huì)報(bào)錯(cuò),而是給出警告,并提供參考計(jì)算結(jié)果。>>A/B警告:矩陣為奇異工作精度。ans=NaNNaNNaN

NaNNaNNaNNaNNaNNaN>>B\A%B左除A警告:矩陣為奇異工作精度。ans=NaNNaNNaNNaNNaNNaNInfNaN-Inf【例3-6】已知矩陣

,矩陣

,計(jì)算A左除B和B右除A。>>A=[123;301;421];%輸入矩陣A>>B=[555;555;555];%輸入矩陣B>>C=A\BC=1.11111.11111.1111-0.5556-0.5556-0.55561.66671.66671.6667>>D=B/AD=1.3889-0.27781.11111.3889-0.27781.11111.3889-0.27781.11113.1.7矩陣運(yùn)算通常,X=A\B是A*X=B的解,X=A/B是X*B=A的解。>>A=[21-3;431;1-42];>>B=[4;5;12];>>X=A\BX=3.0000-2.3000-0.10003.1.7矩陣運(yùn)算【例3-7】求線(xiàn)性方程組

的解?!痉治觥烤€(xiàn)性方程組一般可以表示成AX=B的形式。其中,A為等式左邊各方程式的系數(shù)項(xiàng),X為欲求解的未知項(xiàng),B為等式右邊的已知列向量。根據(jù)線(xiàn)性代數(shù)知識(shí),可知,X=A-1B。因此,在MATLAB中求解線(xiàn)性方程組可通過(guò)矩陣除法運(yùn)算獲得,即X=A\B。(4)矩陣的乘方運(yùn)算矩陣的乘方運(yùn)算使用的運(yùn)算符是“^”,如果A是一個(gè)矩陣,P是一個(gè)整數(shù),則A^P表示矩陣A自乘P次。3.1.7矩陣運(yùn)算>>A=[21-3;431;1-42];>>A^3ans=67100-207176-68-103-5711(5)矩陣的轉(zhuǎn)置運(yùn)算矩陣轉(zhuǎn)置是將第行第列的元素與第行第列的元素互換,其運(yùn)算符為“'”。3.1.7矩陣運(yùn)算>>A=[21-3;431;1-42]A=21-34311-42>>B=A'B=24113-4-312對(duì)于矩陣運(yùn)算,MATLAB還提供了許多矩陣函數(shù),正是因?yàn)閾碛辛巳绱吮姸嗪屯晟频暮瘮?shù),MATLAB才具有了功能強(qiáng)大的數(shù)學(xué)處理能力。3.1.8矩陣的運(yùn)算函數(shù)(1)矩陣行列式的值在MATLAB中,使用函數(shù)det(A)求矩陣行列式的值。3.1.8矩陣的運(yùn)算函數(shù)例如,構(gòu)建5階隨機(jī)矩陣,并求其行列式的值。>>A=rand(5)A=0.93400.33710.16560.74820.15240.12990.16220.60200.45050.82580.56880.79430.26300.08380.53830.46940.31120.65410.22900.99610.01190.52850.68920.91330.0782>>B=det(A)B=-0.11613.1.8矩陣的運(yùn)算函數(shù)(2)矩陣求逆對(duì)于一個(gè)方陣A,如果存在一個(gè)與其同階的方陣B,使得AB=BA=I(I為單位矩陣),則稱(chēng)B為A的逆矩陣。當(dāng)然,A也是B的逆矩陣。求方陣的逆矩陣可調(diào)用函數(shù)inv?!纠?-8】求方陣A的逆矩陣,且驗(yàn)證。>>A=[1,-1,1;5,-4,3;2,1,1];>>B=inv(A)B=-1.40000.40000.20000.2000-0.20000.40002.6000-0.60000.2000>>E=A*BE=1.000000-0.00001.00000-0.000001.00003.1.8矩陣的運(yùn)算函數(shù)(3)抽取對(duì)角矩陣在研究矩陣時(shí),有時(shí)需要將矩陣的對(duì)角線(xiàn)上的元素提取出來(lái)形成一個(gè)列向量,有時(shí)也需要用一個(gè)向量構(gòu)造一個(gè)對(duì)角矩陣。提取矩陣的對(duì)角線(xiàn)元素和構(gòu)造對(duì)角矩陣的函數(shù)為diag。>>A=[1,2,3;4,5,6];>>D=diag(A)%提取對(duì)角線(xiàn)元素D=15diag函數(shù)還有一種形式:diag(矩陣名,k),實(shí)現(xiàn)提取第k條對(duì)角線(xiàn)上的元素。>>D1=diag(A,1)D1=263.1.8矩陣的運(yùn)算函數(shù)(3)抽取對(duì)角矩陣如果V是一個(gè)含有m個(gè)元素的向量,那么diag(V)將產(chǎn)生一個(gè)m×m對(duì)角矩陣,其主對(duì)角線(xiàn)元素即向量V的元素。>>diag([1,2,-1,4])ans=1000020000-1000043.1.8矩陣的運(yùn)算函數(shù)【例3-9】建立一個(gè)5×5的矩陣A,將其第1行元素乘以1,第2行元素乘以2……第5行元素乘以5。>>A=ones(5)A=1111111111111111111111111>>D=diag(1:5)D=1000002000003000004000005>>D*Aans=11111222223333344444

555553.1.8矩陣的運(yùn)算函數(shù)(4)矩陣重構(gòu)MATLAB提供將矩陣或向量重構(gòu)為新矩陣的函數(shù)reshape,其形式有以下兩種。①B=reshape(A,[m,n])。②B=reshape(A,m,n)?!咀⒁狻竣僦貥?gòu)矩陣的元素個(gè)數(shù)m×n必須與向量元素個(gè)數(shù)相等。②重構(gòu)矩陣按列進(jìn)行。3.1.8矩陣的運(yùn)算函數(shù)【例3-10】將10個(gè)元素的1×10矩陣(向量)重構(gòu)為5×2矩陣。>>A=1:10A=12345678910>>B=reshape(A,[5,2])B=162738495103.1.8矩陣的運(yùn)算函數(shù)【例3-11】將一個(gè)4×4方陣重構(gòu)為一個(gè)2列矩陣。為第一個(gè)維度指定[],以使reshape自動(dòng)計(jì)算合適的行數(shù)。>>A=magic(4)%構(gòu)造4階魔方矩陣A=16231351110897612414151>>B=reshape(A,[],2)B=163510964152131187121413.1.8矩陣的運(yùn)算函數(shù)(5)求矩陣的特征值設(shè)A為n階矩陣,是一個(gè)數(shù),如果方程Ax=x存在非零解向量,則稱(chēng)為A的一個(gè)特征值,相應(yīng)的非零解向量x稱(chēng)為與特征值對(duì)應(yīng)的特征向量。MATLAB中求特征值和特征向量的函數(shù)為eig。【例3-12】求例3-8中的矩陣的特征值。>>A=[1,-1,1;5,-4,3;2,1,1]A=1-115-43211>>eig(A)ans=-3.5688-0.63562.20443.1.8矩陣的運(yùn)算函數(shù)(6)求特征多項(xiàng)式MATLAB中使用poly函數(shù)來(lái)求矩陣的特征多項(xiàng)式,使用roots函數(shù)可以求特征多項(xiàng)式的根,特征多項(xiàng)式的根是矩陣的特征值。>>A=[123;456;780]

%構(gòu)造矩陣AA=123456780>>p=poly(A) %求矩陣A的特征多項(xiàng)式p=1.0000-6.0000-72.0000-27.0000>>r=roots(p) %求特征多項(xiàng)式的根r=12.1229-5.7345-0.3884>>eig(A) %矩陣A的特征多項(xiàng)式的根是矩陣A的特征值ans=12.1229-0.3884-5.73453.1.8矩陣的運(yùn)算函數(shù)除以上介紹的矩陣函數(shù)外,還有一些其他的矩陣函數(shù)。如下表:函數(shù)名功能det計(jì)算方陣的行列式的值inv方陣的逆陣diag抽取對(duì)角矩陣reshape向量重構(gòu)矩陣或數(shù)組eig求特征值和特征向量poly求特征多項(xiàng)式rank矩陣的秩expm矩陣指數(shù)logm矩陣對(duì)數(shù)sqrtm矩陣開(kāi)方可以把向量看作只有一行或一列的矩陣,也可以認(rèn)為矩陣是由一組向量構(gòu)成的,即可以將向量看作矩陣的組成元素。3.2向量向量分行向量和列向量,向量的構(gòu)造方法有兩種:①按矩陣構(gòu)造方式構(gòu)造向量;②利用字符“:”生成具有固定步長(zhǎng)的行向量;③利用函數(shù)linspace生成在一定數(shù)值區(qū)間內(nèi)等間距產(chǎn)生一定數(shù)量元素的行向量。>>x=1:0.5:3%產(chǎn)生以1為初值、步長(zhǎng)為0.5、不大于3的行向量x=1.00001.50002.00002.50003.0000>>y=1:5%產(chǎn)生以1為初值、默認(rèn)步長(zhǎng)為1、不大于5的行向量y=12345>>z=linspace(2,12,6)%產(chǎn)生以2為初值、12為終值、6個(gè)元素間距相等的行向量z=246810123.2向量列向量可通過(guò)行向量的轉(zhuǎn)置運(yùn)算獲得。>>x=1:0.5:3%產(chǎn)生以1為初值、步長(zhǎng)為0.5、不大于3的行向量x=1.00001.50002.00002.50003.0000>>y=x'y=1.00001.50002.00002.50003.00003.3數(shù)組數(shù)組就是相同數(shù)據(jù)類(lèi)型的元素按一定順序排列的集合,是用于程序設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)中的概念,而并不同矩陣一樣是數(shù)學(xué)上的概念?!咀⒁狻繉?duì)于MATLAB工作空間中的變量,MATLAB并不做矩陣和數(shù)組的區(qū)分,只是在調(diào)用不同的函數(shù)和運(yùn)用不同的運(yùn)算符時(shí)才將其進(jìn)行分類(lèi)和區(qū)分,進(jìn)行相應(yīng)的計(jì)算。MATLAB的乘法運(yùn)算(*)、除法運(yùn)算(/或\)和冪次方運(yùn)算(^),指數(shù)函數(shù)expm、對(duì)數(shù)函數(shù)logm和開(kāi)方函數(shù)sqrtm均是對(duì)矩陣進(jìn)行的,即把矩陣作為一個(gè)整體來(lái)運(yùn)算,其變量即矩陣。若對(duì)所有元素按單個(gè)元素進(jìn)行運(yùn)算,則這類(lèi)運(yùn)算即數(shù)組運(yùn)算,其對(duì)應(yīng)的變量即數(shù)組。3.3.1數(shù)組的創(chuàng)建與索引數(shù)組有一維數(shù)組、二維數(shù)組和多維數(shù)組,其創(chuàng)建與引用有所不同。(1)一維數(shù)組一維數(shù)組的創(chuàng)建與矩陣相同,每個(gè)數(shù)組元素由一個(gè)下標(biāo)以“數(shù)組名(元素序號(hào))”的形式來(lái)索引。例如,1×5一維數(shù)組索引示意圖如圖所示。(1)(2)(3)(4)(5)3.3.1數(shù)組的創(chuàng)建與索引對(duì)于一維數(shù)組A,A(1)表示一維數(shù)組A的第1個(gè)元素。>>A=[123]%一維數(shù)組的創(chuàng)建與矩陣相同A=123>>A0=A(1)A0=1(2)二維數(shù)組二維數(shù)組的創(chuàng)建與矩陣相同。在數(shù)組中,兩個(gè)維度由行和列表示,每個(gè)數(shù)組元素由兩個(gè)下標(biāo)以“數(shù)組名(行序號(hào),列序號(hào))”的形式來(lái)索引。3.3.1數(shù)組的創(chuàng)建與索引(1,1)(1,2)(1,3)(1,4)(1,5)(2,1)(2,2)(2,3)(2,4)(2,5)(3,1)(3,2)(3,3)(3,4)(3,5)(4,1)(4,2)(4,3)(4,4)(4,5)對(duì)于二維數(shù)組A,A(1,2)表示二維數(shù)組A的第1行第2列元素。>>X=[12;34];%二維數(shù)組的創(chuàng)建與矩陣相同>>X12=X(1,2)X12=25×5二維數(shù)組索引示意圖3.3.1數(shù)組的創(chuàng)建與索引(3)多維數(shù)組MATLAB中的多維數(shù)組是指具有兩個(gè)以上維度的數(shù)組,是二維數(shù)組的擴(kuò)展,使用額外的下標(biāo)進(jìn)行索引。例如,三維數(shù)組使用3個(gè)下標(biāo),以“數(shù)組名(行序號(hào),列序號(hào),頁(yè)序號(hào))”進(jìn)行索引。3.3.1數(shù)組的創(chuàng)建與索引創(chuàng)建多維數(shù)組:先創(chuàng)建二維矩陣,再進(jìn)行擴(kuò)展。例如,創(chuàng)建一個(gè)3×3×3的三維數(shù)組。首先定義一個(gè)3×3矩陣,作為三維數(shù)組中的第一頁(yè)。>>A=[123;456;789]A=1234567893.3.1數(shù)組的創(chuàng)建與索引然后添加第2頁(yè):可將另一個(gè)3×3矩陣賦給第3個(gè)維度中的索引值2,語(yǔ)法為A(:,:,2),在第1個(gè)和第2個(gè)維度中使用冒號(hào),以在其中包含賦值表達(dá)式右側(cè)的所有行和所有列。>>A(:,:,2)=[101112;131415;161718]A(:,:,1)=123456789A(:,:,2)=1011121314151617183.3.1數(shù)組的創(chuàng)建與索引若還有第3頁(yè),則輸入以下命令>>A(:,:,3)=[192021;222324;252627]A(:,:,1)=123456789A(:,:,2)=101112131415161718A(:,:,3)=1920212223242526273.3.1數(shù)組的創(chuàng)建與索引要訪問(wèn)多維數(shù)組中的元素,同樣需要使用整數(shù)下標(biāo),就像在向量和矩陣中一樣。例如,找到A中下標(biāo)為(1,2,2)的元素,它位于A的第2頁(yè)上的第1行第2列>>AA(:,:,1)=123456789A(:,:,2)=101112131415161718A(:,:,3)=192021222324A122=A(1,2,2)A122=113.3.1數(shù)組的創(chuàng)建與索引若在第2個(gè)維度中使用索引向量[13],只訪問(wèn)A的每頁(yè)上的第1列和第3列,則命令如下:>>C=A(:,[13],:)C(:,:,1)=134679C(:,:,2)=101213151618C(:,:,3)=1921222425273.3.1數(shù)組的創(chuàng)建與索引同樣,若要查找每頁(yè)的第2行和第3行,則也可以使用冒號(hào)運(yùn)算符“:”創(chuàng)建索引向量:>>D=A(2:3,:,:)D(:,:,1)=456789D(:,:,2)=131415161718D(:,:,3)=2223242526273.3.2數(shù)組的基本算術(shù)運(yùn)算MATLAB具有兩種不同類(lèi)型的算術(shù)運(yùn)算:數(shù)組運(yùn)算和矩陣運(yùn)算。矩陣運(yùn)算遵循線(xiàn)性代數(shù)的法則,數(shù)組運(yùn)算執(zhí)行逐元素運(yùn)算并支持多維數(shù)組。用句點(diǎn)字符“.”來(lái)區(qū)別數(shù)組運(yùn)算與矩陣運(yùn)算。MATLAB中常用的數(shù)組算術(shù)運(yùn)算符運(yùn)算符用途說(shuō)明+加法A+B表示將A和B加在一起-減法A-B表示從A中減去B.*按元素乘法A.*B表示A和B的逐元素乘積.^按元素求冪A.^B表示包含元素A(i,j)的B(i,j)次冪的矩陣./數(shù)組右除A./B表示元素A(i,j)/B(i,j).\數(shù)組左除A.\B表示元素B(i,j)/A(i,j)3.3.2數(shù)組的基本算術(shù)運(yùn)算(1)基本運(yùn)算的數(shù)組兼容MATLAB中的大多數(shù)二元(兩個(gè)輸入)運(yùn)算符和函數(shù)都支持具有兼容大小的數(shù)值數(shù)組。如果兩個(gè)輸入的維度大小相同或其中一個(gè)輸入的維度為1,則這些輸入將具有兼容的大小。例如,如果兩個(gè)數(shù)組執(zhí)行按元素或函數(shù)運(yùn)算時(shí),MATLAB會(huì)將大小兼容的數(shù)組隱式擴(kuò)展為相同的大小,再進(jìn)行元素運(yùn)算。3.3.2數(shù)組的基本算術(shù)運(yùn)算(1)基本運(yùn)算的數(shù)組兼容具有相同或兼容大小的標(biāo)量、向量和數(shù)組的組合有如下幾種,其運(yùn)算結(jié)果如下。①兩個(gè)大小完全相同的輸入:3.3.2數(shù)組的基本算術(shù)運(yùn)算(1)基本運(yùn)算的數(shù)組兼容具有相同或兼容大小的標(biāo)量、向量和數(shù)組的組合有如下幾種,其運(yùn)算結(jié)果如下。②其中一個(gè)輸入是標(biāo)量:3.3.2數(shù)組的基本算術(shù)運(yùn)算(1)基本運(yùn)算的數(shù)組兼容具有相同或兼容大小的標(biāo)量、向量和數(shù)組的組合有如下幾種,其運(yùn)算結(jié)果如下。③一個(gè)輸入是數(shù)組或矩陣,另一個(gè)輸入是行向量或列向量:3.3.2數(shù)組的基本算術(shù)運(yùn)算(1)基本運(yùn)算的數(shù)組兼容具有相同或兼容大小的標(biāo)量、向量和數(shù)組的組合有如下幾種,其運(yùn)算結(jié)果如下。④一個(gè)輸入是列向量,另一個(gè)輸入是行向量:3.3.2數(shù)組的基本算術(shù)運(yùn)算(2)數(shù)組加減運(yùn)算數(shù)組加減運(yùn)算可針對(duì)向量、矩陣和多維數(shù)組的對(duì)應(yīng)元素執(zhí)行逐元素運(yùn)算。>>A=[111]A=111>>B=[123]B=123>>A+B%兩個(gè)數(shù)組的大小相同ans=2343.3.2數(shù)組的基本算術(shù)運(yùn)算(2)數(shù)組加減運(yùn)算如果一個(gè)操作對(duì)象是標(biāo)量,而另一個(gè)操作對(duì)象不是標(biāo)量,則MATLAB會(huì)將該標(biāo)量隱式擴(kuò)展為與另一個(gè)操作對(duì)象具有相同的大?。▽?duì)數(shù)組的每個(gè)元素與標(biāo)量進(jìn)行加減運(yùn)算)。>>A=[111]A=111>>A+3%將標(biāo)量3隱式擴(kuò)展為與操作對(duì)象A具有相同大小的數(shù)組,進(jìn)行加法運(yùn)算ans=4443.3.2數(shù)組的基本算術(shù)運(yùn)算(2)數(shù)組加減運(yùn)算如果操作對(duì)象的大小不相同,兩個(gè)輸入中的其中一個(gè)的維度為1,則這些輸入將具有兼容的大小。>>A=[111;222;333]A=111222333>>m=[246]m=246>>A-m%m隱式擴(kuò)展為[246;246;246]ans=-1-3-50-2-41-1-33.3.2數(shù)組的基本算術(shù)運(yùn)算(2)數(shù)組加減運(yùn)算行向量和列向量的大小兼容。如果將一個(gè)1×3向量與一個(gè)2×1向量相加,則每個(gè)向量都會(huì)在MATLAB執(zhí)行按元素進(jìn)行加法運(yùn)算之前隱式擴(kuò)展為一個(gè)2×3矩陣。>>x=[123]x=123>>y=[10;15]y=1015>>x+yans=1112131617183.3.2數(shù)組的基本算術(shù)運(yùn)算(2)數(shù)組加減運(yùn)算如果兩個(gè)操作對(duì)象的大小不兼容,則會(huì)收到錯(cuò)誤消息。>>A=[816;357;492]A=816357492>>B=[24]B=24>>A-B對(duì)于此運(yùn)算,數(shù)組的大小不兼容。3.3.2數(shù)組的基本算術(shù)運(yùn)算(3)數(shù)組乘法運(yùn)算數(shù)組乘法運(yùn)算的運(yùn)算符為“.*”。數(shù)組運(yùn)算是元素對(duì)元素的算術(shù)運(yùn)算,運(yùn)算符中的“.”可以理解為“元素”,通常將數(shù)組乘法運(yùn)算稱(chēng)為“點(diǎn)乘”。兩個(gè)具有相同行列數(shù),且元素個(gè)數(shù)相同的矩陣的點(diǎn)乘運(yùn)算如下:>>x=[123;456;789];>>y=[246;135;369];>>x.*y%x的元素與y的元素對(duì)應(yīng)相乘ans=2818415302148813.3.2數(shù)組的基本算術(shù)運(yùn)算兩個(gè)具有大小兼容性的操作對(duì)象:一個(gè)為3×3數(shù)組,一個(gè)為1×3數(shù)組。當(dāng)兩者點(diǎn)乘時(shí),1×3數(shù)組隱式擴(kuò)展為3×3數(shù)組。>>x=[123;456;789];>>m=[246];>>x.*m%x數(shù)組點(diǎn)乘mans=2818820361432543.3.2數(shù)組的基本算術(shù)運(yùn)算(4)數(shù)組除法運(yùn)算數(shù)組除法分為數(shù)組左除和數(shù)組右除兩種,運(yùn)算符分別為“.\”和“./”。MATLAB規(guī)定,A和B的大小必須相同或兼容。>>A=ones(2,3);>>B=[123;456];>>x=B.\A%A的元素除以B的對(duì)應(yīng)元素x=1.00000.50000.33330.25000.20000.1667>>x=A./B%A的元素除以B的對(duì)應(yīng)元素x=1.00000.50000.33330.25000.20000.16673.3.2數(shù)組的基本算術(shù)運(yùn)算(4)數(shù)組除法運(yùn)算數(shù)組除法分為數(shù)組左除和數(shù)組右除兩種,運(yùn)算符分別為“.\”和“./”。MATLAB規(guī)定,A和B的大小必須相同或兼容。>>c=2;>>D=[123;456]; %創(chuàng)建2×3數(shù)組>>B=[123;456];>>x=c./D %結(jié)果的大小與數(shù)組大小相同:2×3數(shù)組2.00001.00000.66670.50000.40000.33333.3.2數(shù)組的基本算術(shù)運(yùn)算若創(chuàng)建1×2行向量和3×1列向量,并將它們相除,則MATLAB會(huì)先將1×2行向量和3×1列向量隱式擴(kuò)展為3×2數(shù)組,再進(jìn)行對(duì)應(yīng)元素的除法運(yùn)算。>>c=2;>>a=1:2;>>b=(1:3)';>>a./b%a數(shù)組右除bans=1.00002.00000.50001.00000.33330.66673.3.2數(shù)組的基本算術(shù)運(yùn)算(5)數(shù)組冪運(yùn)算數(shù)組冪運(yùn)算的運(yùn)算符為“.^”。也稱(chēng)為“點(diǎn)冪”。>>A=1:5;>>C=A.^2C=1491625>>A=[123;456;789];>>C=A.^-1C=1.00000.50000.33330.25000.20000.16670.14290.12500.11113.3.2數(shù)組的基本算術(shù)運(yùn)算若列向量A有m個(gè)元素、行向量B有n個(gè)元素,則當(dāng)進(jìn)行兩者的點(diǎn)冪運(yùn)算時(shí),MATLAB先將列向量A和行向量B隱式擴(kuò)展為m×n數(shù)組,再對(duì)兩個(gè)數(shù)組的對(duì)應(yīng)元素進(jìn)行冪運(yùn)算。>>a=[23]a=23>>b=[1;2;3]b=123>>a.^bans=2349827【例3-13】創(chuàng)建一個(gè)1×2行向量和一個(gè)3×1列向量,以列向量中的各元素為指數(shù),求行向量中各元素的冪。3.4

多項(xiàng)式多項(xiàng)式的運(yùn)算與矩陣的運(yùn)算是不

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論