大三下學(xué)習(xí)-第1章matlab基礎(chǔ)知識(shí)_第1頁(yè)
大三下學(xué)習(xí)-第1章matlab基礎(chǔ)知識(shí)_第2頁(yè)
大三下學(xué)習(xí)-第1章matlab基礎(chǔ)知識(shí)_第3頁(yè)
大三下學(xué)習(xí)-第1章matlab基礎(chǔ)知識(shí)_第4頁(yè)
大三下學(xué)習(xí)-第1章matlab基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章

MATLAB基礎(chǔ)知識(shí)MATLAB是MathWorks公司開(kāi)發(fā)的科學(xué)與工程計(jì)算軟件,它以矩陣運(yùn)算為基礎(chǔ),把計(jì)算、繪圖及動(dòng)態(tài)系統(tǒng)仿真等功能有機(jī)地融合在一起。同時(shí),它又具有程序設(shè)計(jì)語(yǔ)言的基本特征。目前,MATLAB在工程計(jì)算與數(shù)值分析、控制系統(tǒng)設(shè)計(jì)與仿真、信號(hào)處理、圖像處理、金融建模設(shè)計(jì)與分析等學(xué)科領(lǐng)域都有著十分廣泛的應(yīng)用。MATLAB簡(jiǎn)介本章學(xué)習(xí)目標(biāo)

了解MATLAB的發(fā)展和主要功能。熟悉啟動(dòng)和退出MATLAB的方法。熟悉MATLAB的操作環(huán)境。掌握建立矩陣的方法。掌握MATLAB數(shù)據(jù)對(duì)象的特點(diǎn)和基本的運(yùn)算規(guī)則。1.1MATLAB的發(fā)展與主要功能——發(fā)展MATrixLABoratory(矩陣實(shí)驗(yàn)室)1992 MATLAB4.0版1997 MATLAB5.0版2000年10月 MATLAB6.0版2004年7月 MATLAB7.0版2005年9月 MATLAB7.1版隨后每年發(fā)布兩次以年份命名的版本,如:R2006a(MATLAB7.2),R2006b(MATLAB7.3)R2007a(MATLAB7.4),R2007b(MATLAB7.5)R2008a(MATLAB7.6),R2008b(MATLAB7.7),R2010a。1.1MATLAB的發(fā)展與主要功能——功能1/5求解線性方程組:(1)數(shù)值計(jì)算和符號(hào)計(jì)算功能1.1MATLAB的發(fā)展與主要功能——功能2/5在MATLAB命令窗口輸入命令:a=[2,3,-1;3,-5,3;6,3,-8];b=[7;8;9];x=inv(a)*b也可以通過(guò)符號(hào)計(jì)算來(lái)解此方程:symsx1x2x3[x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x3-8,6*x1+3*x2-8*x3-9)分別繪制函數(shù)y=300sinx/x和y=x2的曲線x=-20:0.1:20;plot(x,300*sin(x)./x,':',x,x.^2);1.1MATLAB的發(fā)展與主要功能——功能3/5(2)繪圖功能1.1MATLAB的發(fā)展與主要功能——功能4/5MATLAB是解釋性語(yǔ)言,程序執(zhí)行速度較慢,而且不能脫離MATLAB環(huán)境而獨(dú)立運(yùn)行。MathWorks公司提供了將MATLAB源程序編譯為獨(dú)立于MATLAB集成環(huán)境運(yùn)行的EXE文件以及將MATLAB程序轉(zhuǎn)化為C語(yǔ)言程序的編譯器。(3)程序設(shè)計(jì)語(yǔ)言功能1.1MATLAB的發(fā)展與主要功能——功能5/5MATLAB包含兩部分:基本部分和各種可選的工具箱?;静糠謽?gòu)成了MATLAB的核心內(nèi)容,也是使用和構(gòu)造工具箱的基礎(chǔ)。工具箱擴(kuò)展了MATLAB的功能。功能性工具箱:擴(kuò)充其符號(hào)計(jì)算功能、可視建模仿真功能、文字處理功能能;學(xué)科性工具箱:專(zhuān)業(yè)性強(qiáng),如控制系統(tǒng)工具箱(ControlSystemToolbox)、信號(hào)處理工具箱(SignalProcessingToolbox)、神經(jīng)網(wǎng)絡(luò)工具箱(NeuralNetworkToolbox)、最優(yōu)化工具箱(OptimizationToolbox)(4)擴(kuò)展功能1.2MATLAB集成開(kāi)發(fā)環(huán)境MATLAB集成開(kāi)發(fā)環(huán)境包括多個(gè)窗口,除MATLAB主窗口外,還有命令窗口(CommandWindow)、工作空間(Workspace)窗口、命令歷史(CommandHistory)窗口和當(dāng)前目錄(CurrentDirectory)窗口。這些窗口都可以內(nèi)嵌在MATLAB主窗口中,組成MATLAB的工作界面。在MATLAB主窗口的左下角,還有一個(gè)Start按鈕。1.2MATLAB集成開(kāi)發(fā)環(huán)境——主窗口主窗口除了嵌入一些子窗口外,還包括菜單欄和工具欄。1.2MATLAB集成開(kāi)發(fā)環(huán)境——命令窗口1/4命令窗口(CommandWindow)用于輸入命令并顯示除圖形以外的所有執(zhí)行結(jié)果。一般來(lái)說(shuō),一個(gè)命令行輸入一條命令,命令行以回車(chē)結(jié)束。但一個(gè)命令行也可以輸入若干條命令,各命令之間以逗號(hào)分隔,若前一命令后帶有分號(hào),則逗號(hào)可以省略。例如:>>x=720,y=86x=720y=86>>x=720;y=86y=861.2MATLAB集成開(kāi)發(fā)環(huán)境——命令窗口2/4如果一個(gè)命令行很長(zhǎng),一個(gè)物理行之內(nèi)寫(xiě)不下,可以在第1個(gè)物理行之后加上3個(gè)小黑點(diǎn)并按下回車(chē)鍵,然后接著下一個(gè)物理行繼續(xù)寫(xiě)命令的其他部分。3個(gè)小黑點(diǎn)稱(chēng)為續(xù)行符,即把下面的物理行看作該行的邏輯繼續(xù)。例如:>>z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+…1/(1*2*3*4*5)1.2MATLAB集成開(kāi)發(fā)環(huán)境——命令窗口3/4命令行編輯的常用控制鍵及其功能鍵名功能鍵名功能前尋式調(diào)回已輸入過(guò)的命令Home將光標(biāo)移到當(dāng)前行首端后尋式調(diào)回已輸入過(guò)的命令End將光標(biāo)移到當(dāng)前行末尾在當(dāng)前行中左移光標(biāo)Del刪除光標(biāo)右邊的字符在當(dāng)前行中右移光標(biāo)Backspace刪除光標(biāo)左邊的字符PgUp前尋式翻滾一頁(yè)Esc刪除當(dāng)前行全部?jī)?nèi)容PgDn后尋式翻滾一頁(yè)命令窗口常用的控制指令>>dire:\mywork %顯示e:\mywork目錄下的文件清單>>edite:\mywork\Aviod.m%打開(kāi)編輯器編輯Aviod.m>>whichAviod.m %顯示Aviod.m所在的目錄指令含義指令含義cd設(shè)置當(dāng)前工作目錄exit/quit退出MATLABclf清除圖形窗open打開(kāi)文件clc清除指令窗中顯示的內(nèi)容md創(chuàng)建目錄clear清除內(nèi)存變量more使顯示內(nèi)容分頁(yè)顯示dir列出指定目錄的文件清單type顯示M文件的內(nèi)容edit打開(kāi)M文件編輯器which指出文件所在目錄1.2MATLAB集成開(kāi)發(fā)環(huán)境——命令窗口4/4也可利用菜單命令實(shí)現(xiàn)1.2MATLAB集成開(kāi)發(fā)環(huán)境——工作空間窗口工作空間(Workspace)是MATLAB用于存儲(chǔ)各種變量和結(jié)果的內(nèi)存空間。1.2MATLAB集成開(kāi)發(fā)環(huán)境——當(dāng)前目錄窗口也稱(chēng)為路徑瀏覽器,對(duì)文件進(jìn)行有效的組織和管理。當(dāng)前目錄(CurrentDirectory)是指MATLAB運(yùn)行時(shí)的工作目錄,只有在當(dāng)前目錄或搜索路徑下的文件、函數(shù)才可以被運(yùn)行或調(diào)用。如果沒(méi)有特殊指明,數(shù)據(jù)文件也將存放在當(dāng)前目錄下。1.2MATLAB集成開(kāi)發(fā)環(huán)境——?dú)v史命令窗口自動(dòng)保留自安裝起所有用過(guò)的命令的歷史記錄,并且還標(biāo)明了使用時(shí)間,從而方便用戶查詢。而且,通過(guò)雙擊命令可進(jìn)行歷史命令的再運(yùn)行。1.2MATLAB集成開(kāi)發(fā)環(huán)境——Start按鈕在MATLAB主窗口左下角有一個(gè)Start按鈕,提供快速訪問(wèn)MATLAB的各種工具和查閱MATLAB包含的各種資源的命令菜單。1.2MATLAB集成開(kāi)發(fā)環(huán)境——搜索路徑1/3(1)默認(rèn)搜索過(guò)程MATLAB的文件是通過(guò)不同的路徑進(jìn)行組織和管理的。當(dāng)用戶在命令窗口輸入一條命令后,MATLAB將按照下列順序搜索所輸入的命令:檢查是不是一個(gè)變量。檢查是不是一個(gè)內(nèi)部函數(shù)。檢查是否為當(dāng)前目錄下的M文件。檢查是否為MATLAB搜索路徑中其他目錄下的M文件。假設(shè)建立了一個(gè)變量result,同時(shí)在當(dāng)前目錄下建立了一個(gè)M文件result.m,如果在命令窗口輸入result,在屏幕上顯示變量result的值。如果沒(méi)有建立result變量,則執(zhí)行result.m文件。1.2MATLAB集成開(kāi)發(fā)環(huán)境——搜索路徑2/3(2)設(shè)置搜索路徑——用path命令把用戶目錄臨時(shí)納入搜索路徑path(path,‘c:\mydir')——用對(duì)話框設(shè)置搜索路徑在MATLAB的File菜單中選擇SetPath命令或在命令窗口執(zhí)行pathtool命令1.2MATLAB集成開(kāi)發(fā)環(huán)境——搜索路徑3/3路徑添加路徑移動(dòng)刪除路徑系統(tǒng)將所有搜索路徑的信息保存在一個(gè)M文件pathdef.m中,通過(guò)修改該文件也可以修改搜索路徑1.3MATLAB的幫助功能——幫助界面1/2進(jìn)入MATLAB幫助界面可以通過(guò)以下3種方法?!駟螕鬗ATLAB主窗口工具欄中的Help按鈕?!裨诿畲翱谥休斎搿癶elpwin”、“helpdesk”或“doc”命令?!襁x擇Help菜單中的“MATLABHelp”選項(xiàng)。1.3MATLAB的幫助功能——幫助界面2/2左邊為向?qū)ы?yè)面,右邊為顯示頁(yè)面。Contents:查看幫助的主題;Index:根據(jù)指定的關(guān)鍵詞進(jìn)行查找;SearchResult:查找指定的單詞;Demos:查看和運(yùn)行MATLAB的演示程序。1.3MATLAB的幫助功能——幫助命令1/5(1)help命令help命令是查詢函數(shù)語(yǔ)法的最基本方法,查詢信息直接顯示在命令窗口。在命令窗口中直接輸入help命令將會(huì)顯示當(dāng)前幫助系統(tǒng)中所包含的所有項(xiàng)目,即搜索路徑中所有的目錄名稱(chēng)。help加函數(shù)名顯示該函數(shù)的幫助說(shuō)明。如helpmagic命令顯示magic函數(shù)的使用方法與功能:MATLAB命令窗口顯示的幫助信息用大寫(xiě)來(lái)突出函數(shù)名,但在使用函數(shù)時(shí),要用小寫(xiě)。1.3MATLAB的幫助功能——幫助命令2/5(2)lookfor命令當(dāng)用戶知道某函數(shù)名而不知其用法時(shí),help命令可以幫助用戶了解函數(shù)的用法。若需要查找一個(gè)不知其確切名稱(chēng)的函數(shù)名時(shí),可以用lookfor命令根據(jù)用戶提供的關(guān)鍵字來(lái)查詢相關(guān)的函數(shù)。lookfor通過(guò)對(duì)MATLAB搜索路徑中的每個(gè)M文件的注釋區(qū)的第一行進(jìn)行掃描,一旦發(fā)現(xiàn)此行中含有所查詢的關(guān)鍵字,則將該函數(shù)名及第1行注釋全部顯示在屏幕上。1.3MATLAB的幫助功能——幫助命令3/5如,輸入命令lookforfourier:1.3MATLAB的幫助功能——幫助命令4/51.3MATLAB的幫助功能——幫助命令5/5(3)其他幫助命令命令命令功能demo運(yùn)行MATLAB演示程序tour運(yùn)行MATLAB漫游程序doc在幫助瀏覽器中顯示指定函數(shù)的參考信息what列出當(dāng)前目錄下的M文件、MEX文件盒MAT文件which顯示指定函數(shù)或文件的路徑helpbrowser打開(kāi)幫助內(nèi)的瀏覽器helpdesk運(yùn)行HTML格式的幫助面板(helpdesk)helpwin打開(kāi)幫助內(nèi)的瀏覽器exist查找指定變量或函數(shù)的存在性web顯示指定的網(wǎng)絡(luò)頁(yè)面1.3MATLAB的幫助功能——演示系統(tǒng)在幫助窗口中選擇演示系統(tǒng)(Demos)選項(xiàng)卡,然后在其中選擇相應(yīng)的演示模塊,或者在命令窗口輸入“demos”,或者選擇主窗口“Help”菜單中的“Demos”子菜單:1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值1/81.變量命名在MATLAB7.X中,變量名是以字母開(kāi)頭,后接字母、數(shù)字或下畫(huà)線的字符序列,最多63個(gè)字符。例如:x、x_1、xy12在MATLAB中,變量名區(qū)分字母的大小寫(xiě)。例如addr、Addr和ADDR表示3個(gè)不同的變量。注:MATLAB提供的標(biāo)準(zhǔn)函數(shù)名以及命令名必須用小寫(xiě)字母。例如,求矩陣A的逆用inv(A),不能寫(xiě)成Inv(A)/INV(A)。2.賦值語(yǔ)句MATLAB賦值語(yǔ)句有兩種格式:(1)變量=表達(dá)式;(2)表達(dá)式在第1種語(yǔ)句形式下,MATLAB將右邊表達(dá)式的值賦給左邊的變量,而在第2種語(yǔ)句形式下,將表達(dá)式的值賦給MATLAB的預(yù)定義變量ans。在語(yǔ)句的最后加分號(hào),那么,MATLAB僅僅執(zhí)行賦值操作,不再顯示運(yùn)算的結(jié)果。注釋以%開(kāi)頭。1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值2/8例:計(jì)算表達(dá)式的值并顯示結(jié)果:>>x=sqrt(1+pi);>>y=(exp(x)+log(abs(sin(x)^2-sin(x*x))))/(x-5*i)y=0.5690+1.3980i其中,pi和i都是MATLAB定義的變量,分別代表圓周率π和虛數(shù)單位。1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值3/8預(yù)定義變量含義預(yù)定義變量含義ans計(jì)算結(jié)果的默認(rèn)賦值變量nargin函數(shù)輸入?yún)?shù)個(gè)數(shù)eps機(jī)器零閾值nargout函數(shù)輸出參數(shù)個(gè)數(shù)pi圓周率的近似值realmax最大正實(shí)數(shù)i,j虛數(shù)單位realmin最小正實(shí)數(shù)Inf,inf無(wú)窮大。如I/0的結(jié)果lasterr存放最新的錯(cuò)誤信息NaN,nan非數(shù)。如0/0,inf/inf的結(jié)果lastwarn存放最新的警告信息注:在使用時(shí)盡量避免對(duì)這些變量重新賦值。1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值4/8——MATLAB中的預(yù)定義變量1.內(nèi)存變量的顯示與刪除Who和whos命令顯示在MATLAB工作空間中已經(jīng)駐留的變量名。whos在給出駐留變量名的同時(shí),還給出它們的維數(shù)、所占字節(jié)數(shù)以及變量的類(lèi)型。>>whoYourvariablesare:Rabcpx>>whosNameSizeBytesClassAttributesR3x124doublea3x372doubleb3x124doublec3x124doublep1x432doublex1x18double1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值5/8clear命令刪除MATLAB工作空間中的變量。MATLAB工作空間窗口專(zhuān)門(mén)用于內(nèi)存變量的管理。MATLAB工作空間窗口變量編輯器1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值6/82.內(nèi)存變量文件MAT文件是MATLAB保存數(shù)據(jù)的一種標(biāo)準(zhǔn)格式二進(jìn)制文件,擴(kuò)展名是.mat。>>save文件名[變量名表][-append][-ascii]>>load文件名[變量名表][-ascii]

文件名可以帶路徑,缺省在當(dāng)前目錄下操作。文件名可以不擴(kuò)展名,命令默認(rèn)對(duì)MAT文件進(jìn)行操作,文件保存在當(dāng)前目錄下。變量名表中的變量個(gè)數(shù)不限,變量名之間以空格分隔。當(dāng)省略變量名時(shí),保存或裝入全部變量。

-ascii選項(xiàng)以ASCII格式處理,缺省以二進(jìn)制處理。

-append選項(xiàng)將變量追加到MAT文件中。1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值7/8假定變量a和b存在于MATLAB工作空間中,輸入以下命令便可將a和b保存于當(dāng)前目錄的mydata.mat文件中:>>savemydataab把mydata.mat中的內(nèi)容裝入MATLAB工作空間:>>loadmydata1.4MATLAB的變量和數(shù)據(jù)操作——變量與賦值8/81.4MATLAB的變量和數(shù)據(jù)操作——數(shù)據(jù)的輸出格式1/3MATLAB用十進(jìn)制數(shù)表示常數(shù),可采用日常記數(shù)法和科學(xué)記數(shù)法。如:3.1415、3+5i是日常計(jì)數(shù)法表示,1.78029e2、1234e-5i是科學(xué)計(jì)數(shù)法表示。字母e或E表示以10為底的指數(shù)。一般情況下,在MATLAB內(nèi)部每一個(gè)數(shù)據(jù)元素都是用雙精度來(lái)表示和存儲(chǔ)的。數(shù)據(jù)輸出是可以用“format”命令改變輸出輸出格式:format格式符注:“format”命令只影響數(shù)據(jù)輸出格式,而不影響數(shù)據(jù)的計(jì)算和存儲(chǔ)。1.4MATLAB的變量和數(shù)據(jù)操作——數(shù)據(jù)的輸出格式2/3格式符含義short輸出小數(shù)點(diǎn)后4位,最多不超過(guò)7位有效數(shù)字。對(duì)于大于1000的數(shù),用5位有效數(shù)字的科學(xué)記數(shù)形式輸出long15位有效數(shù)字的形式輸出shorte5位有效數(shù)字的科學(xué)記數(shù)形式輸出longe15位有效數(shù)字的科學(xué)記數(shù)形式輸出shortg從short和shorte中自動(dòng)選擇最佳輸出方式longg從long和longe中自動(dòng)選擇最佳輸出方式rat近似有理數(shù)表示hex十六進(jìn)制表示+正數(shù)、負(fù)數(shù)、零分別用+、-、空格表示bank銀行格式,以元、分表示compact輸出變量之間沒(méi)有空行l(wèi)oose輸出變量之間有空行1.4MATLAB的變量和數(shù)據(jù)操作——數(shù)據(jù)的輸出格式3/3例如輸入為:x=[4/31.2345e-6]在各種不同的格式符下的輸出為:短格式(short):1.33330.0000短格式e方式(shorte):1.333e+001.2345e-06長(zhǎng)格式(long):1.333333333333330.00000123450000長(zhǎng)格式e方式(longe):1.33333333333333e+0001.23450000000000e-006銀行格式(bank):1.330.00十六進(jìn)制格式(hex):3ff55555555555553eb4b6231abfd271+格式(+):++1.5MATLAB矩陣及其基本運(yùn)算矩陣是MATLAB的基本處理對(duì)象,也是MATLAB的重要特征。MATLAB的大部分運(yùn)算或命令都是在矩陣運(yùn)算的意義下執(zhí)行的,而且這種運(yùn)算定義在復(fù)數(shù)域上。MATLAB強(qiáng)大的計(jì)算功能以矩陣運(yùn)算為基礎(chǔ)。在MATLAB中,生成矩陣時(shí)無(wú)需對(duì)矩陣的維數(shù)和類(lèi)型進(jìn)行說(shuō)明,MATLAB會(huì)根據(jù)用戶所輸入的內(nèi)容進(jìn)行自動(dòng)配置。1.5MATLAB矩陣及其基本運(yùn)算——矩陣的生成1/6(1)直接輸入法將矩陣的所有元素用方括號(hào)括起來(lái),按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號(hào)分隔,不同行的元素之間用分號(hào)分隔,也可分幾行,用回車(chē)鍵代替分號(hào)。>>A=[1,2,3;4,5,6;7,8,9]A=123456789矩陣元素也可以是表達(dá)式,MATLAB將自動(dòng)計(jì)算結(jié)果:>>B=[10,5-sqrt(7),sin(pi/2);7,4*8,abs(-7)]B=10.00002.35421.00007.000032.00007.0000矩陣元素可以是復(fù)數(shù):>>B=[1,2+7i,5*sqrt(2)*i;3,2/5,3.5+6i]B=1.00002.0000+7.0000i0+7.0711i3.00000.40003.5000+6.0000i也可以分別建立實(shí)部矩陣和虛部矩陣,再合起來(lái)構(gòu)成復(fù)數(shù)矩陣:>>R=[1,2,3;4,5,6];>>I=[1.1,2.2,3.3;4.4,5.5,6.6];>>ri=R+i*Iri=1.0000+1.1000i2.0000+2.2000i3.0000+3.3000i4.0000+4.4000i5.0000+5.5000i6.0000+6.6000i1.5MATLAB矩陣及其基本運(yùn)算——矩陣的生成2/61.5MATLAB矩陣及其基本運(yùn)算——矩陣的生成3/6(2)利用M文件建立矩陣對(duì)于比較大且比較復(fù)雜的矩陣,可以建立一個(gè)M文件。例:利用M文件建立mydata矩陣。(1)啟動(dòng)有關(guān)文本編輯程序或MATLAB的M-file編輯器,并輸入待建矩陣:mydata=[1.11.21.31.41.51.61.71.81.9;2.12.22.32.42.52.62.72.82.9;3.13.23.33.43.53.63.73.83.9];(2)把輸入的內(nèi)容存盤(pán)(設(shè)文件名為matfund.m)。(3)在MATLAB命令窗口中輸入matfund,即運(yùn)行該M文件,就會(huì)自動(dòng)建立一個(gè)名為mydata的矩陣,可供以后使用。(3)利用數(shù)據(jù)文件建立矩陣通過(guò)load命令,將外部數(shù)據(jù)文件中的內(nèi)容調(diào)入到工作空間中創(chuàng)建矩陣,外部文件的擴(kuò)展名為.dat。例如:利用文本編輯器創(chuàng)建一個(gè)數(shù)據(jù)文件test.dat:2468635673251251.5MATLAB矩陣及其基本運(yùn)算——矩陣的生成4/6在命令窗口輸入:>>loadtest.dat>>test運(yùn)行結(jié)果為:test=2468635673251251.5MATLAB矩陣及其基本運(yùn)算——矩陣的生成5/6(4)利用已建好的矩陣建立更大的矩陣大矩陣可由已建好的小矩陣拼接而成。矩陣的合并就是把兩個(gè)以上的矩陣連接起來(lái)得到一個(gè)新矩陣,“[]”符號(hào)可以作為矩陣合并操作符,命令格式如下:c=[ab] %將矩陣a和b水平方向合并為cc=[a;b] %將矩陣a和b垂直方向合并為c>>A=[1,2,3;4,5,6;7,8,9];>>B=[11:13;14:16;17:19];>>A=[1,2,3;4,5,6;7,8,9];>>C=[A,B;B,A]C=1231112134561415167891718191112131231415164561718197891.5MATLAB矩陣及其基本運(yùn)算——矩陣的生成6/6(5)利用Matlab提供的函數(shù)來(lái)創(chuàng)建一些常用的特殊矩陣,例如對(duì)角陣、單位陣和零矩陣zeros(m,n)——m×n的零矩陣,全部元素都為0ones(m,n)——全部元素都為1的m×n的矩陣rand(m,n)——隨機(jī)矩陣eye(m,n)——單位矩陣magic(n)——n維magic方陣空陣[]——matlab允許輸入空陣,當(dāng)一項(xiàng)操作無(wú)結(jié)果時(shí),返回空陣。1.5MATLAB矩陣及其基本運(yùn)算——冒號(hào)表達(dá)式1/2冒號(hào)可以產(chǎn)生行向量,其調(diào)用格式為:a:b:c產(chǎn)生一個(gè)由a開(kāi)始到c結(jié)束,以步長(zhǎng)b自增的行向量。其中,a為初始值,b為步長(zhǎng),c為終止值(c

>

a)。>>t=0:2:10t=0246810linspace函數(shù)產(chǎn)生行向量。其調(diào)用格式為:linspace(a,b,n)其中a和b是生成向量的第1個(gè)和最后一個(gè)元素,n是元素總數(shù)。當(dāng)n省略時(shí),自動(dòng)產(chǎn)生100個(gè)元素。顯然,linspace(a,b,n)與a:(b

?

a)/(n

?

1):b等價(jià)。例如:x=linspace(0,10,6)x=02468101.5MATLAB矩陣及其基本運(yùn)算——冒號(hào)表達(dá)式2/21.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分1/81.矩陣元素可以通過(guò)下標(biāo)(Subscript)對(duì)矩陣的單個(gè)元素操作。例如,A(2,3)=76語(yǔ)句將矩陣A的第2行第3列的元素賦為76值。也可以采用矩陣元素的序號(hào)(Index)來(lái)引用矩陣元素。矩陣元素的序號(hào)就是相應(yīng)元素在內(nèi)存中的排列順序。矩陣元素按列編號(hào),先第1列,再第2列,依次類(lèi)推。例如:>>A=[10,20,30;40,50,60];>>A(3)ans=20序號(hào)與下標(biāo)是一一對(duì)應(yīng)的,以m

×

n矩陣A為例,矩陣元素A(i,j)的序號(hào)為(j?1)*m

+

i。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得。>>sub2ind(size(A),1,3)ans=5size(A)函數(shù)返回包含兩個(gè)元素的向量:矩陣A的行數(shù)和列數(shù)>>[i,j]=ind2sub(size(A),5)i=1j=31.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分2/8length(A):給出A的維數(shù);reshape(A,m,n):在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。>>x=linespace(0,11,12)*pi;>>y=reshape(x,3,4)y=09.424818.849628.27433.141612.566421.991131.41596.283215.708025.132734.5575>>newy=reshape(y,2,6)newy=06.283212.566418.849625.132731.41593.14169.424815.708021.991128.274334.55751.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分3/81.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分4/82.矩陣拆分(1)利用冒號(hào)表達(dá)式獲得子矩陣①A(m,n)表示取A矩陣第m行、第n列的元素,A(m,:)表示取A矩陣第m行的全部元素,A(:,n)表示取A矩陣的第n列全部元素。>>A=1:2:5A=135>>B=[A;2*A;3*A]B/p>

>>B(2,:)ans=2610>>B(:,3)ans=51015②A(m1:m2,:)表示取A矩陣第m1~m2行的全部元素,A(:,n1:n2)表示取A矩陣第n1~n2列的全部元素,A(m1:m2,n1:n2)表示取A矩陣第m1~m2行內(nèi),并在第n1~n2列中的所有元素。>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20]A=1234567891011121314151617181920>>A(2:3,4:5)ans=9101415>>A(2:3,1:2:5)ans=68101113151.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分5/8③A(:)將矩陣A每一列元素堆疊起來(lái),成為一個(gè)列向量,這也是MATLAB變量的內(nèi)容存儲(chǔ)方式。>>A=[-45,65,71;27,35,91]A=-456571273591>>B=A(:)B=-452765357191利用冒號(hào)運(yùn)算很容易從給出的矩陣中獲得子矩陣,處理速度比利用循環(huán)語(yǔ)句來(lái)賦值快得多,所以應(yīng)該盡量用這種賦值方法。1.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分6/8可利用一般向量和end運(yùn)算符來(lái)表示矩陣下標(biāo),從而獲得子矩陣。end表示某一維末尾元素下標(biāo)。>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];>>A(end,:)%取A最后一行元素ans=1617181920>>A([1,4],3:end)%取A第1,4行中第3列到最后一列的元素ans=3451819201.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分7/8(2)利用空矩陣刪除矩陣的元素空矩陣是指無(wú)任何元素的矩陣,表示形式為[]。給變量x賦空矩陣的語(yǔ)句為x=[]將某些元素從矩陣中刪除,采用將其置為空矩陣的方法就是一種有效的方法。A=[123456;789101112;131415161718];A(:,[24])=[]%刪除A的第2列和第4列元素A=135679111213151718

1.5MATLAB矩陣及其基本運(yùn)算——矩陣的拆分8/81.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算1/111.基本算術(shù)運(yùn)算MATLAB的基本算術(shù)運(yùn)算有:+(加)、?(減)、*(乘)、/(右除)、\(左除)、^(乘方)。(1)矩陣加減運(yùn)算運(yùn)算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運(yùn)算,A和B矩陣的相應(yīng)元素相加減。如果A與B的維數(shù)不相同,則MATLAB將給出錯(cuò)誤信息,提示用戶兩個(gè)矩陣的維數(shù)不匹配。一個(gè)標(biāo)量也可以和其他不同維數(shù)的矩陣進(jìn)行加減運(yùn)算。>>x=[2,-1,0;3,2,-4];>>y=x-1y=1-2-121-5>>y=y+xy=3-3-153-91.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算2/11(2)矩陣乘法矩陣A和B進(jìn)行乘法運(yùn)算,要求A的列數(shù)與B的行數(shù)相等,或稱(chēng)A和B兩矩陣維數(shù)相容。如果兩者的維數(shù)不相容,則將給出錯(cuò)誤信息,提示用戶兩個(gè)矩陣是不可乘的。例如:A=[1,2,3;4,5,6];B=A*A???Errorusing==>mtimesInnermatrixdimensionsmustagree.在MATLAB中,還可以進(jìn)行矩陣和標(biāo)量相乘,標(biāo)量可以是乘數(shù)也可以是被乘數(shù)。矩陣和標(biāo)量相乘是矩陣中的每個(gè)元素與此標(biāo)量相乘。1.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算3/11(3)矩陣除法MATLAB中有兩種矩陣除法:\和/,分別表示左除和右除。如果A是非奇異方陣,則:A\B=inv(A)*B,B/A=B*inv(A)。對(duì)于含有標(biāo)量的運(yùn)算,兩種除法運(yùn)算的結(jié)果相同:3/4=4\3=0.75;設(shè)a=[10.5,25],則a/5=5\a=[2.10005.0000]。對(duì)于矩陣運(yùn)算,一般A\BB/A。>>a=[123;426;749];>>b=[432;751;12792];>>c1=a\bc1=0.5000-0.500044.50001.00000.000046.00000.50001.1667-44.8333>>c2=b/ac2=-0.1667-3.33332.5000-0.8333-7.66675.500012.833363.6667-36.50001.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算4/11(4)矩陣的乘方一個(gè)矩陣的乘方運(yùn)算可以表示成A^x,要求A為方陣,x為標(biāo)量。>>A=[123;456;780];>>A^2ans=303615668142395469若x是正整數(shù),A^x表示A自乘x次;若x=0,得到一個(gè)與A維數(shù)相同的單位矩陣。如x小于0且A的逆矩陣存在,則A^x=inv(A)^(-x)>>A=[123;456;780];>>A^0ans=100010001>>A^(-1)ans=-1.77780.8889-0.11111.5556-0.77780.2222-0.11110.2222-0.11111.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算5/112.點(diǎn)運(yùn)算MATLAB有一種特殊的運(yùn)算符,其運(yùn)算符是在有關(guān)算術(shù)運(yùn)算符前面加點(diǎn),所以叫點(diǎn)運(yùn)算。點(diǎn)運(yùn)算符有.*、./、.\和.^。兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對(duì)應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維參數(shù)相同。>>A=[1,2,3;4,5,6;7,8,9];>>B=[-1,0,1;1,-1,0;0,1,1];>>C=A.*B%表示A和B單個(gè)元素之間對(duì)應(yīng)相乘,與A*B不同C=-1034-50089如果A、B兩矩陣具有相同的維數(shù),則A./B表示A矩陣除以B矩陣的對(duì)應(yīng)元素。B.\A等價(jià)于A./B。>>A=[123;456];>>B=[-213;-114];>>C1=A./BC1=-0.50002.00001.0000-4.00005.00001.5000>>C2=B.\AC2=-0.50002.00001.0000-4.00005.00001.50001.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算6/11點(diǎn)運(yùn)算是MATLAB很有特色的一個(gè)運(yùn)算符,在實(shí)際應(yīng)用中起著很重要的作用。當(dāng)x=0.1,0.4,0.7,1時(shí),分別求y=x2cosx的值>>x=0.1:0.3:1;>>y=x.*x.*cos(x);或者:>>y=x.^2.*cos(x);1.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算7/111.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算8/113.MATLAB常用數(shù)學(xué)函數(shù)(1)函數(shù)的自變量規(guī)定為矩陣變量,運(yùn)算法則是將函數(shù)逐項(xiàng)作用于矩陣的元素上,因而運(yùn)算的結(jié)果是與自變量同維數(shù)的矩陣。>>y=sin(0:pi/2:2*pi)y=01.00000.0000-1.0000-0.0000>>y=abs(y)y=01.00000.00001.00000.00001.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算9/11(2)abs函數(shù)可以求實(shí)數(shù)的絕對(duì)值、復(fù)數(shù)的模、字符串的ASCII碼值。>>x=[-3.14,3+4i];>>abs(x)ans=3.14005.0000(3)用于取整的函數(shù)有fix、floor、ceil、round,要注意區(qū)別。>>x=[fix(13.37),floor(13.37),ceil(13.37),round(13.37)]x=13131413>>x=[fix(-13.67),floor(-13.67),ceil(-13.67),round(-13.67)]x=-13-14-13-141.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算10/11(4)rem與mod函數(shù)的區(qū)別。rem(x,y)和mod(x,y)要求x,y為相同大小的實(shí)矩陣或?yàn)闃?biāo)量。當(dāng)y0,rem(x,y)

=

x?y.*fix(x./y),mod(x,y)=x?y.*floor(x./y);當(dāng)y

=

0,rem(x,0)

=

NaN,而mod(x,0)

=

x。顯然,當(dāng)x,y同號(hào)時(shí),rem(x,y)與mod(x,y)相等。rem(x,y)的符號(hào)與x相同,而mod(x,y)的符號(hào)與y相同。>>x=5;>>y=3;>>[rem(x,y),mod(x,y)]ans=22>>x=-5;>>y=3;[rem(x,y),mod(x,y)]ans=-211.5MATLAB矩陣及其基本運(yùn)算——算術(shù)運(yùn)算11/111.5MATLAB矩陣及其基本運(yùn)算——關(guān)系運(yùn)算1/3MATLAB提供了6種關(guān)系運(yùn)算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=

=(等于)、~=(不等于)。(1)當(dāng)兩個(gè)比較量是標(biāo)量時(shí),直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達(dá)式結(jié)果為1,否則為0。>>A=5A=5>>A=A==10A=0(2)當(dāng)參與比較的量是兩個(gè)維數(shù)相同的矩陣時(shí),比較是對(duì)兩矩陣相同位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行,并給出元素的比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個(gè)維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。1.5MATLAB矩陣及其基本運(yùn)算——關(guān)系運(yùn)算2/3>>A=[1,23;456];>>B=[314;5210];>>A>Bans=010010>>C=A~=BC=111111(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組成。1.5MATLAB矩陣及其基本運(yùn)算——關(guān)系運(yùn)算3/3>>A=[314;5210];>>B=A>4B=0001011.5MATLAB矩陣及其基本運(yùn)算——邏輯運(yùn)算1/5MATLAB提供了3種邏輯運(yùn)算符:&(與)、|(或)和~(非),4個(gè)邏輯運(yùn)算函數(shù):and(a,b)、or(a,b)、not(a)和xor(a,b)。在邏輯運(yùn)算中,確認(rèn)非零元素為真,用1表示;零元素為假,用0表示。a&b或函數(shù)and(a,b)表示a和b作邏輯與運(yùn)算,當(dāng)a、b全為非零時(shí),運(yùn)算結(jié)果為1,否則為0。a|b或函數(shù)or(a,b)表示a和b作邏輯或運(yùn)算,當(dāng)a、b中只要有一個(gè)非零,運(yùn)算結(jié)果為1。~a和函數(shù)not(a)表示對(duì)a作邏輯非運(yùn)算,當(dāng)a是零時(shí),運(yùn)算結(jié)果為1;當(dāng)a非零時(shí),運(yùn)算結(jié)果為0。函數(shù)xor(a,b)表示a和b作邏輯異或運(yùn)算,當(dāng)a、b的值不同時(shí),運(yùn)算結(jié)果為1,否則運(yùn)算結(jié)果為0。1.5MATLAB矩陣及其基本運(yùn)算——邏輯運(yùn)算2/5(1)若參與邏輯運(yùn)算的是兩個(gè)同維矩陣,那么運(yùn)算將對(duì)矩陣相同位置上的元素按標(biāo)量規(guī)則逐個(gè)進(jìn)行。最終運(yùn)算結(jié)果是一個(gè)與原矩陣同維的矩陣,其元素由1或0組成。>>A=[23,54,12,6,-78];>>B=[5,324,7,-43,76];>>C1=A>10&B<10C1=10100>>C2=xor(A>10,B<10)C2=01010(2)若參與邏輯運(yùn)算的一個(gè)是標(biāo)量,一個(gè)是矩陣,那么運(yùn)算將在標(biāo)量與矩陣中的每個(gè)元素之間按標(biāo)量規(guī)則逐個(gè)進(jìn)行。最終運(yùn)算結(jié)果是一個(gè)與矩陣同維的矩陣,其元素由1或0組成。(3)邏輯非是單目運(yùn)算符,也服從矩陣運(yùn)算規(guī)則。(4)在算術(shù)、關(guān)系、邏輯運(yùn)算中,算術(shù)運(yùn)算優(yōu)先級(jí)最高,邏輯運(yùn)算優(yōu)先級(jí)最低。1.5MATLAB矩陣及其基本運(yùn)算——邏輯運(yùn)算3/51.5MATLAB矩陣及其基本運(yùn)算——邏輯運(yùn)算4/5——關(guān)系與邏輯運(yùn)算函數(shù)函數(shù)名含義all若向量的所有元素非零,則結(jié)果為1any向量中任何一個(gè)元素非零,都給出結(jié)果1exist檢查變量在工作空間中是否存在,若存在,則結(jié)果為1,否則為0find找出向量或矩陣中非零元素的位置isempty若被查變量是空陣,則結(jié)果為1isglobal若被查變量是全局變量,則結(jié)果為1isinf若元素是inf,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0isnan若元素是nan,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論