




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章MATLAB程序設(shè)計(jì)6/6/20231控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介一、簡(jiǎn)介MATLAB是MatrixLaboratory的縮寫(xiě)。除具備卓越的數(shù)值計(jì)算能力外,它還提供了專業(yè)水平的符號(hào)計(jì)算,文字處理,可視化建模仿真和實(shí)時(shí)控制等功能。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué),工程中常用的形式十分相似,故用MATLAB來(lái)解算問(wèn)題要比用C,FORTRAN等語(yǔ)言完相同的事情簡(jiǎn)捷得多當(dāng)前流行的MATLAB7.0/Simulink4.0包括擁有數(shù)百個(gè)內(nèi)部函數(shù)的主包和三十幾種工具包(Toolbox).工具包又可以分為功能性工具包和學(xué)科工具包.功能工具包用來(lái)擴(kuò)充MATLAB的符號(hào)計(jì)算,可視化建模仿真,文字處理及實(shí)時(shí)控制等功能.學(xué)科工具包是專業(yè)性比較強(qiáng)的工具包,控制工具包,信號(hào)處理工具包,通信工具包等都屬于此類.
開(kāi)放性使MATLAB廣受用戶歡迎.除內(nèi)部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過(guò)對(duì)源程序的修改或加入自己編寫(xiě)程序構(gòu)造新的專用工具包.6/6/20232控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介二、語(yǔ)言特點(diǎn)語(yǔ)言簡(jiǎn)潔緊湊,使用方便靈活。例如:A=[123;456;789]一條語(yǔ)句實(shí)現(xiàn)了對(duì)3x3矩陣的輸入。數(shù)值算法穩(wěn)定可靠,庫(kù)函數(shù)十分豐富。例如:polyder(b) %求多項(xiàng)式b的微分運(yùn)算符豐富。例如:C=A*B%矩陣的乘法,
x=A\b %求Ax=b的最小二乘解Matlab既具有結(jié)構(gòu)化的控制語(yǔ)句(if、for、while)又支持面向?qū)ο蟮某绦蛟O(shè)計(jì)。6/6/20233控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介語(yǔ)法限制不嚴(yán)格,程序設(shè)計(jì)自由度大。例如:在MATLAB里可以不用先定義或聲明變量就可以使用它們程序的可移植性好。Matlab的圖形功能強(qiáng)大,支持?jǐn)?shù)據(jù)的可視化操作,方便的顯示程序的運(yùn)行結(jié)果。強(qiáng)大的工具箱。例如:控制領(lǐng)域可以使用的工具箱就有ControlSystem(控制工具箱)源程序的開(kāi)發(fā)性,系統(tǒng)的可擴(kuò)充能力強(qiáng)。Matlab是解釋執(zhí)行語(yǔ)言。Matlab程序不用編譯生成可執(zhí)行文件就可以運(yùn)行6/6/20234控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介三、Matlab集成環(huán)境的組成Matlab語(yǔ)言Matlab工作環(huán)境包括程序編輯器、變量查看器、系統(tǒng)仿真器。Matlab圖形系統(tǒng)用Matlab的句柄圖形,可以實(shí)現(xiàn)二維、三維數(shù)據(jù)的可視化、圖象處理,可以完全或局部修改圖形窗口,還可以方便的設(shè)計(jì)圖形界面。Matlab數(shù)學(xué)函數(shù)庫(kù)MatlabAPI(ApplicationProgramInterface)6/6/20235控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介四、Matlab軟件的基本使用方法命令窗口
工作空間
歷史命令當(dāng)前路徑
6/6/20236控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介(1)命令窗口Matlab的命令窗口可以執(zhí)行任何Matlab命令和函數(shù)。主要功能操作M文件(打開(kāi)、新建、運(yùn)行、保存)操作MDL文件運(yùn)行Matlab程序運(yùn)行外部應(yīng)用程序(2)程序編輯/調(diào)試器Matlab內(nèi)置了一個(gè)程序的編輯/調(diào)試器6/6/20237控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介主要功能建立、編輯、存儲(chǔ)M文件可以運(yùn)行程序調(diào)試(斷點(diǎn)、單步、跟蹤、查看)程序設(shè)置斷點(diǎn)取消斷點(diǎn)單步運(yùn)行進(jìn)入函數(shù)跳出函數(shù)退出調(diào)試?yán)^續(xù)運(yùn)行6/6/20238控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介(3)變量查看器在MATLAB中,工作空間(Workspace)是一個(gè)重要的、比較抽象的概念。工作空間指運(yùn)行MATLAB的程序或命令所生成的所有變量和MATLAB提供的常量構(gòu)成的空間。
工作空間的特點(diǎn)工作空間在MATLAB運(yùn)行期間一直存在關(guān)閉MATLAB后工作空間自動(dòng)消失6/6/20239控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介查看變量刪除變量6/6/202310控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介MATLAB的工作空間包含了一組可以在命令窗口中調(diào)整(調(diào)用)的參數(shù)who:顯示當(dāng)前工作空間中所有變量的一個(gè)簡(jiǎn)單列表
whos:列出變量的大小、數(shù)據(jù)格式等詳細(xì)信息clear:清除工作空間中所有的變量clear變量名:清除指定的變量保存和載入workspace(1)savefilenamevariables將變量列表variables所列出的變量保存到磁盤文件filename中6/6/202311控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介Variables所表示的變量列表中,不能用逗號(hào),各個(gè)不同的變量之間只能用空格來(lái)分隔。未列出variables時(shí),表示將當(dāng)前工作空間中所有變量都保持到磁盤文件中。缺省的磁盤文件擴(kuò)展名為“.mat”,可以使用“-”定義不同的存儲(chǔ)格式(ASCII、V4等)(2)loadfilenamevariables將以前用save命令保存的變量variables從磁盤文件中調(diào)入MATLAB工作空間。用load命令調(diào)入的變量,其名稱為用save命令保存時(shí)的名稱,取值也一樣。6/6/202312控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介Variables所表示的變量列表中,不能用逗號(hào),各個(gè)不同的變量之間只能用空格來(lái)分隔。未列出variables時(shí),表示將磁盤文件中所有變量都調(diào)入工作空間。退出工作空間quit或exit(4)圖形窗口在圖形窗口上可以進(jìn)行繪制曲線、顯示文本、填充顏色等操作。用figure命令建立新的圖形窗口。6/6/202313控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介可以用繪圖語(yǔ)句自動(dòng)創(chuàng)建圖形窗口并在上面繪圖,如plot命令。編輯模態(tài)添加文本添加箭頭添加線段旋轉(zhuǎn)三維圖形6/6/202314控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介(5)文件管理文件管理的命令,包括列文件名、顯示或刪除文件、顯示或改變當(dāng)前目錄等。what:顯示當(dāng)前目錄下所有與matlab相關(guān)的文件及它們的路徑。dir:顯示當(dāng)前目錄下所有的文件which:顯示某個(gè)文件的路徑cdpath:由當(dāng)前目錄進(jìn)入path目錄cd:顯示當(dāng)前目錄typefilename:在命令窗口中顯示文件filenamedeletefilename:刪除文件filename6/6/202315控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介(6)幫助系統(tǒng)help命令,在命令窗口中顯示MATLBA的所有函數(shù)都是以邏輯群組方式進(jìn)行組織的,而MATLAB的目錄結(jié)構(gòu)就是以這些群組方式來(lái)編排的。help函數(shù)名/文件名%顯示相關(guān)函數(shù)/文件的幫助體helpmatfun
:矩陣函數(shù)-數(shù)值線性代數(shù)helpgeneral:通用命令helpgraphics:通用圖形函數(shù)helpelfun:基本的數(shù)學(xué)函數(shù)helpelmat:基本矩陣和矩陣操作6/6/202316控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介helpdatafun:數(shù)據(jù)分析和傅立葉變換函數(shù)helpops:操作符和特殊字符helppolyfun:多項(xiàng)式和內(nèi)插函數(shù)helplang:語(yǔ)言結(jié)構(gòu)和調(diào)試helpstrfun:字符串函數(shù)helpcontrol:控制系統(tǒng)工具箱函數(shù)helpwin:幫助窗口helpdesk:幫助桌面,瀏覽器模式lookfor
函數(shù)名/文件名%顯示相關(guān)函數(shù)/文件的H1行demo:打開(kāi)示例窗口6/6/202317控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介五、Matlab編程基礎(chǔ)
Matlab初學(xué)者常用的編程知識(shí)、規(guī)則可以在MATLAB命令窗口鍵入一個(gè)命令,也可以由Matlab定義的語(yǔ)言編寫(xiě)一個(gè)或多個(gè)應(yīng)用程序,然后在MATLAB環(huán)境下返回運(yùn)算結(jié)果。
MATLAB以復(fù)數(shù)矩陣為基本的運(yùn)算單元,既可以對(duì)它整體進(jìn)行處理,也可以對(duì)它的某個(gè)或某些元素進(jìn)行單獨(dú)處理操作起來(lái)比較方便。6/6/202318控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介(2)MATLAB最基本的語(yǔ)句是賦值語(yǔ)句,其結(jié)構(gòu)為:變量名列表=表達(dá)式其中等號(hào)左邊的變量名列表為MATLAB語(yǔ)句的返回值,若一次返回多個(gè)結(jié)果,則變量列表用[]括起來(lái),各變量間用逗號(hào)分隔;等號(hào)右邊為表達(dá)式,可以是矩陣運(yùn)算或函數(shù)調(diào)用,可以由分號(hào)(;)、逗號(hào)(,)或回車結(jié)束。如果希望結(jié)果不被顯示,只要在語(yǔ)句之后加上一個(gè)分號(hào)(;)即可。此時(shí)盡管結(jié)果沒(méi)有顯示,但它依然被賦值并在MATLAB工作空間中分配了內(nèi)存。6/6/202319控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介(3)變量不需要定義就可以直接使用和賦值。例如:A=[1,2;3,4]%定義并輸入一個(gè)2x2的矩陣
str=’Hello’%定義并輸入一個(gè)字符串(字符數(shù)組)矩陣的每行中的各個(gè)元素用逗號(hào)或者空格分隔,行于行之間用分號(hào)分隔;字符串用單引號(hào)定義。(4)輸入、輸出函數(shù)①A=input(提示信息,選項(xiàng))例如:A=input(‘EntermatrixA=>’)6/6/202320控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介②disp(A)例如:A=‘hello’;
disp(A) A=[1,2,3;4,5,6;7,8,9];
disp(A)(5)命令行編輯器方向鍵和控制鍵可以編輯修改已輸入的命令:回調(diào)上一行命令:回調(diào)下一行命令6/6/202321控制科學(xué)與工程系2.1MATLAB簡(jiǎn)介多行命令(…)如果命令語(yǔ)句超過(guò)一行或者太長(zhǎng)希望分行輸入,則可以使用多行命令繼續(xù)輸入。S=1-12+13+4+…9-4-18;6/6/202322控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符一、變量(1)變量命名規(guī)則必須以字母開(kāi)頭;
—可以由字母、數(shù)字和下劃線混合組成;變量長(zhǎng)度應(yīng)不大于31個(gè);—字母區(qū)分大小寫(xiě)。(2)特殊變量6/6/202323控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符(3)變量操作在命令窗口中,同時(shí)存儲(chǔ)著輸入的命令和創(chuàng)建的所有變量值,它們可以在任何需要的時(shí)候被調(diào)用。如要察看變量a的值,只需要在命令窗口中輸入變量的名稱即可:》a二、數(shù)值顯示格式任何MATLAB的語(yǔ)句的執(zhí)行結(jié)果都可以在屏幕上顯示,同時(shí)賦值給指定的變量,沒(méi)有指定變量時(shí),賦值給一個(gè)特殊的變量ans,數(shù)據(jù)的顯示格式由format命令控制。format只是影響結(jié)果的顯示,不影響其計(jì)算與存儲(chǔ);MATLAB總是以雙字長(zhǎng)浮點(diǎn)數(shù)(雙精度)執(zhí)行所有運(yùn)算。6/6/202324控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符如果結(jié)果為整數(shù),則顯示沒(méi)有小數(shù);如果結(jié)果不是整數(shù),則輸出形式有:format(short):短格式(5位定點(diǎn)數(shù))99.1253formatlong:長(zhǎng)格式(15位定點(diǎn)數(shù)99.12345678900000formatshorte:短格式e方式9.9123e+001formatlonge:長(zhǎng)格式e方式9.912345678900000e+001formatbank:2位十進(jìn)制99.12formathex:十六進(jìn)制格式6/6/202325控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符三、數(shù)據(jù)類型在MATLAB里共有六種數(shù)據(jù)類型,每一種類型可以是一維、二維和多維的。雙精度型(double)字符型(char)稀疏型(sparse)存儲(chǔ)型(storage)細(xì)胞型(cell)結(jié)構(gòu)型(struct)6/6/202326控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符(1)字符型基本規(guī)則:所有字符串都用單引號(hào)括起來(lái);字符串中的每一個(gè)字符都是該字符串變量中的一個(gè)元素;字符串中的字符以ASCⅡ碼形式存儲(chǔ),因而區(qū)分大小寫(xiě)。常用操作方法:建立:常用函數(shù)有char、int2str、num2str等。連接:水平連接通過(guò)函數(shù)strcat或在中括號(hào)內(nèi)用逗號(hào)連接;垂直連接通過(guò)函數(shù)strvcat或在中括號(hào)內(nèi)用分號(hào)連接。比較:常用函數(shù)strcmp,相同則返回1,否則為0。查找:常用函數(shù)findstr。6/6/202327控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符a='hello'b='goodbye'strcat(a,b)ans=hellogoodbye[a,b]ans=hellogoodbyet1='first';t2='string';t3='matrix';t4='second';S1=strvcat(t1,t2,t3)S2=[t4;t2;t3]S1=S2=firstsecondstringstringmatrix
matrixstrcmp('Yes','Yes')ans=1strcmp('Yes','No')ans=06/6/202328控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符四、運(yùn)算符(1)算術(shù)運(yùn)算符按照運(yùn)算符的優(yōu)先級(jí)可把算術(shù)運(yùn)算符分為五級(jí),在每一級(jí)里運(yùn)算符有同樣的優(yōu)先級(jí),在運(yùn)算時(shí)自左向右結(jié)合+加.^數(shù)組冪-減\左除或反斜杠*矩陣乘法/右除或斜杠.*數(shù)組乘法./數(shù)組除^矩陣冪:冒號(hào)6/6/202329控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符(2)關(guān)系運(yùn)算符在MATLAB里共有六個(gè)關(guān)系運(yùn)算符
<小于>大于
<=小于等于>=大于等于
==等于 -=不等于關(guān)系運(yùn)算符將生成一個(gè)0-1矩陣,當(dāng)運(yùn)算數(shù)相應(yīng)元素為真時(shí)對(duì)應(yīng)位置上生成1,否則為0。6/6/202330控制科學(xué)與工程系2.2數(shù)據(jù)類型和運(yùn)算符例:假設(shè)有:A=[12-1-5]B=[0231]<小于A<Bans=[0011]A<1ans=[0011]>大于A>Bans=[1000]A>1ans=[0100]<=小于等于A<=Bans=[0111]>=大于等于A>=Bans=[1100]==等于A=Bans=[0100];A=1ans=[1000]~=不等于A~=Bans=[1011];A~=1ans=[0111]6/6/202331控制科學(xué)與工程系2.3程序控制語(yǔ)句一、循環(huán)語(yǔ)句MATLAB中的循環(huán)語(yǔ)句包括for和while兩種類型。(1)for循環(huán)for循環(huán)的基本格式為:
for循環(huán)變量=起始值:步長(zhǎng):終止值 循環(huán)體
end步長(zhǎng)的缺省值是1。步長(zhǎng)可以在正實(shí)數(shù)或負(fù)實(shí)數(shù)范圍內(nèi)任意指定,對(duì)于正數(shù),循環(huán)變量的值大于終止值時(shí),循環(huán)結(jié)束;對(duì)于負(fù)數(shù),循環(huán)變量的值小于終止值時(shí),循環(huán)結(jié)束循環(huán)結(jié)構(gòu)可以嵌套使用。書(shū)寫(xiě)格式不必太過(guò)于拘泥,在Editor編輯器中會(huì)自動(dòng)進(jìn)行處理。example6/6/202332控制科學(xué)與工程系2.3程序控制語(yǔ)句(2)while循環(huán)while循環(huán)的基本格式為:
while表達(dá)式 循環(huán)體
end若表達(dá)式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否為真,若為假則跳出循環(huán)體,向下繼續(xù)執(zhí)行,否則繼續(xù)執(zhí)行循環(huán)體。例:exp2_12.mWhile循環(huán)和for循環(huán)的區(qū)別在于,while循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的次數(shù)不是確定的,而for結(jié)構(gòu)中循環(huán)體的執(zhí)行次數(shù)是確定的。(3)Break:從循環(huán)體中跳出,并使循環(huán)結(jié)束。6/6/202333控制科學(xué)與工程系2.3程序控制語(yǔ)句二、選擇語(yǔ)句(1)if-else-elseif
語(yǔ)句if格式if邏輯表達(dá)式執(zhí)行語(yǔ)句end當(dāng)邏輯表達(dá)式的值為真,則執(zhí)行該結(jié)構(gòu)中的執(zhí)行語(yǔ)句內(nèi)容,執(zhí)行完后向下繼續(xù)執(zhí)行,若邏輯表達(dá)式的值為假,跳過(guò)結(jié)構(gòu)中的執(zhí)行語(yǔ)句繼續(xù)向下執(zhí)行。6/6/202334控制科學(xué)與工程系2.3程序控制語(yǔ)句if-else格式if邏輯表達(dá)式執(zhí)行語(yǔ)句1else執(zhí)行語(yǔ)句2end如果邏輯表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,然后跳過(guò)語(yǔ)句2向下執(zhí)行若邏輯表達(dá)式的值為假,則跳過(guò)執(zhí)行語(yǔ)句1而執(zhí)行語(yǔ)句2,然后向下執(zhí)行。6/6/202335控制科學(xué)與工程系2.3程序控制語(yǔ)句if-elseif
格式if邏輯表達(dá)式1
執(zhí)行語(yǔ)句1
elseif
邏輯表達(dá)式2
執(zhí)行語(yǔ)句2 ……
elseif
邏輯表達(dá)式n
執(zhí)行語(yǔ)句nelse
執(zhí)行語(yǔ)句elend如果邏輯表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,若邏輯表達(dá)式的值為假則判斷邏輯表達(dá)式2的值,若為真,則執(zhí)行語(yǔ)句2,否則向下執(zhí)行,若所有表達(dá)式均為假,執(zhí)行語(yǔ)句el。例exp2_13.m exp2_13_.m6/6/202336控制科學(xué)與工程系2.3程序控制語(yǔ)句(2)switch語(yǔ)句switch語(yǔ)句的格式為:
switch表達(dá)式(標(biāo)量或字符串)
case值1
語(yǔ)句1 case值2
語(yǔ)句2 ┅ case值n
語(yǔ)句n otherwise
語(yǔ)句ow end表達(dá)式的值和哪種情況(case)的值相同,就執(zhí)行哪種情況中的語(yǔ)句,如果都不同,則執(zhí)行otherwise中的語(yǔ)句。格式中也可以不包括otherwise,這時(shí)如果表達(dá)式的值與列出的各種情況都不相同,則繼續(xù)向下執(zhí)行。6/6/202337控制科學(xué)與工程系2.4矩陣運(yùn)算一、矩陣輸入(1)在命令窗口中輸入在MATLAB中不必描述矩陣的維數(shù)和類型,而由輸入的格式和內(nèi)容來(lái)決定。輸入小矩陣最簡(jiǎn)單的方法:把矩陣的元素直接排列到方括號(hào)([])中。每行內(nèi)的元素間用空格(space)或逗號(hào)(,)分開(kāi),行與行的內(nèi)容間用分號(hào)(;)隔開(kāi)。矩陣生成不但可以使用純數(shù)字(含復(fù)數(shù)),也可以使用變量(或者說(shuō)采用一個(gè)表達(dá)式)。大的矩陣可以用分行輸入,回車鍵代表分號(hào)。6/6/202338控制科學(xué)與工程系2.4矩陣運(yùn)算例:(2)語(yǔ)句生成用線性等間距生成向量矩陣(start:step:end)start為起始值step為步長(zhǎng),步長(zhǎng)為1時(shí)可省略step參數(shù);另外step也可以取負(fù)數(shù)end為終止值》y=[2,4,5368]y=245368》a=1;b=2;c=3;》x=[5bc;a*ba+cc/b]x=5.0002.0003.0002.0004.0001.5006/6/202339控制科學(xué)與工程系2.4矩陣運(yùn)算例:》a=[1:2:10]a=13579a=linspace(n1,n2,n)在線性空間上,行矢量的值從n1到n2,數(shù)據(jù)個(gè)數(shù)為n,缺省n為100例:》a=linspace(1,10,10)a=123456789106/6/202340控制科學(xué)與工程系2.4矩陣運(yùn)算a=logspace(n1,n2,n)在對(duì)數(shù)空間上,行矢量的值從10n1到10n2,數(shù)據(jù)個(gè)數(shù)為n,缺省n為50。這個(gè)指令為建立對(duì)數(shù)頻域軸坐標(biāo)提供了方便。例:》a=logspace(1,3,3)a=101001000特殊矩陣的生成單位矩陣
eye(n) %生成n維單位陣
eye(m,n) %生成m×n的單位陣 6/6/202341控制科學(xué)與工程系2.4矩陣運(yùn)算eye([m,n]) %生成m×n的單位陣eye(size(A)) %生成與A矩陣同樣大小的單位陣全1矩陣ones(n) ones(m,n)ones([m,n])ones(size(A))全0矩陣zeros(n) zeros(m,n)zeros([m,n]) zeros(size(A))隨機(jī)矩陣rand(n) rand(m,n)rand([m,n])rand(size(A))生成的隨機(jī)矩陣的各個(gè)元素值在0和1之間。6/6/202342控制科學(xué)與工程系2.4矩陣運(yùn)算》eye(2,3)ans=100010》zeros(2,3)ans=000000》ones(2,3)ans=111111》eye(2)ans=1001》zeros(2)ans=0000》ones(2)ans=11116/6/202343控制科學(xué)與工程系2.4矩陣運(yùn)算二、下標(biāo)引用(1)矩陣下標(biāo)用兩個(gè)下標(biāo)來(lái)表示。第i行j列的元素用A(i,j)來(lái)表示在下標(biāo)的表達(dá)式中使用冒號(hào)表示矩陣的一部分。下標(biāo)引用從序號(hào)1開(kāi)始。例:
A(:,n):
A(m,:):
A(m1:m2,n1:n2):提取第n列元素提取第m行元素提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子塊)。6/6/202344控制科學(xué)與工程系2.4矩陣運(yùn)算A(:):(2)矩陣的組合即把小矩陣組合成大矩陣,組合符號(hào)為中括號(hào)[]。例:A=[12;34];B=[56;78];
C=[AB]C=[A;B]C=C=1256123478345678得到一個(gè)長(zhǎng)列矢量,該矢量的元素按矩陣的列進(jìn)行排列。6/6/202345控制科學(xué)與工程系2.4矩陣運(yùn)算(3)矩陣的抽取用下標(biāo)可以從大矩陣?yán)锩娉槿∧承┰亟M成小的矩陣。例:
A=[123;456;789];B=[A(1,1),A(2,3)]B=16(4)刪除矩陣的行和列把空的[]稱為空矩陣,即矩陣大小為0×0??梢酝ㄟ^(guò)把矩陣的行或列賦值為空矩陣來(lái)刪除某行或某列。6/6/202346控制科學(xué)與工程系2.4矩陣運(yùn)算例:X=[]
%將一個(gè)0×0的矩陣賦給X
A(:,[24])=[]
%將A的第二列和第四列刪除
A(:,2)=[]
%刪除矩陣A的第二列(5)矩陣擴(kuò)展如果在原矩陣中一個(gè)不存在的地址位置上設(shè)定一個(gè)數(shù)(賦值),則該矩陣會(huì)自動(dòng)擴(kuò)展行列數(shù),并在該位置上添加這個(gè)數(shù),而且在其他沒(méi)有指定的位置補(bǔ)零。6/6/202347控制科學(xué)與工程系2.4矩陣運(yùn)算三、矩陣運(yùn)算+;-;*;\和/;^;.*;.\;./;.^(1)矩陣的加減使用+、-運(yùn)算符,并滿足以下兩個(gè)條件之一:類型相同,即行數(shù)相等,且列數(shù)相等。其中一個(gè)為標(biāo)量,則矩陣中每一個(gè)元素都和標(biāo)量做加減運(yùn)算。(2)矩陣的乘積使用*運(yùn)算符,必須滿足維數(shù)條件。只有當(dāng)兩個(gè)矩陣中前一個(gè)矩陣的列數(shù)和后一個(gè)矩陣的行數(shù)相同時(shí),才可以進(jìn)行乘法運(yùn)算。6/6/202348控制科學(xué)與工程系2.4矩陣運(yùn)算(3)矩陣的除法除法運(yùn)算的意義相當(dāng)于矩陣的求逆運(yùn)算。定義了矩陣的左除及右除。矩陣的左除:“\”,A\B即求線性方程AX=B的解,X=A-1B矩陣的右除:“/”,A/B是方程XB=A的解,X=AB-1(4)矩陣的冪只有方陣才可以求冪6/6/202349控制科學(xué)與工程系2.4矩陣運(yùn)算(5)矩陣的點(diǎn)運(yùn)算兩個(gè)矩陣之間的點(diǎn)運(yùn)算是對(duì)該矩陣對(duì)應(yīng)元素的直接運(yùn)算。點(diǎn)乘積運(yùn)算要求矩陣的維數(shù)相同。例:a=[12;34];b=[35;59]》c=a+bd=a-b》c=d=47-2-3813-2-56/6/202350控制科學(xué)與工程系2.4矩陣運(yùn)算》a*b=[1323;2951]》a/b=[-0.500.50;3.50–1.50]》a\b=[-1-1;23]》a^3=[3754;81118]》a.*b=[310;1536]》a./b=[0.330.40;0.600.44]》a.\b=[3.002.50;1.672.25]》a.^3=[18;2764]6/6/202351控制科學(xué)與工程系2.4矩陣運(yùn)算(6)矩陣的轉(zhuǎn)置“’”表示復(fù)共軛轉(zhuǎn)置,“.’”表示普通轉(zhuǎn)置。對(duì)于實(shí)矩陣用(’)符號(hào)或(.’)求轉(zhuǎn)置結(jié)果是一樣的對(duì)于含復(fù)數(shù)的矩陣,則(’)將同時(shí)對(duì)復(fù)數(shù)進(jìn)行共軛處理而(.’)則只是將其排列形式進(jìn)行轉(zhuǎn)置?!穉=[123;456]'a=142536》b=[1+2i2-7i]'b=1.0000-2.0000i2.0000+7.0000i》b=[1+2i2-7i].'b=1.0000+2.0000i2.0000-7.0000i》a=[123;456].'a=1425366/6/202352控制科學(xué)與工程系2.4矩陣運(yùn)算四、矩陣函數(shù)求逆矩陣,要求矩陣必須為方陣
X=inv(A)
(2)求矩陣的行列式,要求矩陣必須為方陣
d=det(A)
例:》a=[123;456;235];》b=inv(a)b=-2.33330.33331.00002.66670.3333-2.0000-0.6667-0.33331.0000》det(a)ans=-36/6/202353控制科學(xué)與工程系2.4矩陣運(yùn)算(3)求特征值與特征向量求解A矩陣的特征值和特征向量,其調(diào)用格式為:
D=eig(A);
[V,D]=eig(A);d為矩陣A的特征值向量;求矩陣A的特征向量V及特征值D,滿足A*V=V*D。其中D的對(duì)角線元素為特征值,V的列為對(duì)應(yīng)的特征向量。例:a=[98;68][v,d]=eig(a)v=d=0.7787-0.732015.446200.62740.681301.55386/6/202354控制科學(xué)與工程系2.4矩陣運(yùn)算(4)矩陣的尺寸
為了判斷矩陣的尺寸,Matlab提供了以下函數(shù):
[m,n]=size(A) %返回矩陣的行數(shù)m和列數(shù)n
M=size(A) %在矩陣M中返回矩陣的行數(shù)、列數(shù)
len=length(A) %返回矩陣A行數(shù)和列數(shù)中的最大值
rank(A)%求矩陣的秩》a=[123;345];》[m,n]=size(a)m=2n=3》length(a)ans=3》max(size(a))ans=3》rank(a)ans=26/6/202355控制科學(xué)與工程系2.7數(shù)據(jù)的可視化一、圖形窗口MATLAB自動(dòng)將圖形畫(huà)在圖形窗口上;圖形窗口相對(duì)于命令窗口是獨(dú)立的窗口;圖形窗口的屬性由系統(tǒng)和MATLAB共同控制。二、常用圖形窗口命令格式figure%建立一個(gè)新的圖形窗口,并指定為當(dāng)前窗口用于圖形輸出subplot %把多個(gè)圖形繪在一個(gè)圖形窗口中subplot(m,n,I)%把圖形窗口分成m×n個(gè)小圖形區(qū)域,并指定第i個(gè)區(qū)域?yàn)閳D形繪制區(qū)域,圖形區(qū)域的編排采用行優(yōu)先6/6/202356控制科學(xué)與工程系2.7數(shù)據(jù)的可視化三、基本的繪圖命令plot功能:plot是最基本的二維圖形命令,它是以MATLAB的內(nèi)部函數(shù)形式出現(xiàn)的。MATLAB的其他二維函數(shù)中的絕大多數(shù)是以plot為基礎(chǔ)構(gòu)造的繪圖命令。格式:plot(y),plot(x,y),plot(x1,y1,x2,y2,…)說(shuō)明:plot(y):當(dāng)y為向量時(shí),則以y的元素為縱坐標(biāo),以相應(yīng)元素下標(biāo)為橫坐標(biāo),繪制連線圖。plot(x,y):當(dāng)y和x為同維向量,則以x為橫坐標(biāo)、y為縱坐標(biāo)繪制連線圖。plot(x1,y1,x2,y2,…):每對(duì)x、y必須符合plot(x,y)中的要求,不同對(duì)之間沒(méi)有影響,命令將對(duì)每一對(duì)x,y繪制曲線。6/6/202357控制科學(xué)與工程系2.8程序設(shè)計(jì)入門一、MATLBA程序的基本設(shè)計(jì)原則1、%后面的內(nèi)容是程序的注解,要善于運(yùn)用注解使程序更具可讀性。2、養(yǎng)成在主程序開(kāi)頭用clear指令清除變量的習(xí)慣,以消除工作空間中其他變量對(duì)程序運(yùn)行的影響。但注意在子程序中不要用clear。3、參數(shù)值要集中放在程序的開(kāi)始部分,以便維護(hù)。要充分利用MATLAB工具箱提供的指令來(lái)執(zhí)行所要進(jìn)行的運(yùn)算,在語(yǔ)句行之后輸入分號(hào)使其及中間結(jié)果不在屏幕上顯示,以提高執(zhí)行速度。6/6/202358控制科學(xué)與工程系2.8程序設(shè)計(jì)入門4、input指令可以用來(lái)輸入一些臨時(shí)的數(shù)據(jù);而對(duì)于大量參數(shù),則通過(guò)建立一個(gè)存儲(chǔ)參數(shù)的子程序,在主程序中用子程序的名稱來(lái)調(diào)用。5、程序盡量模塊化,也就是采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來(lái)執(zhí)行全部的操作。6、充分
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)習(xí)教師聘用協(xié)議合同
- 山體滑坡合同協(xié)議
- 合同轉(zhuǎn)讓條約協(xié)議
- 醫(yī)院就業(yè)協(xié)議合同
- 工傷協(xié)議合同模板
- 合同協(xié)議去哪公正
- 廣告牌匾合同協(xié)議
- 雙方合同簽訂協(xié)議
- 帳篷維修協(xié)議合同
- 委托保養(yǎng)協(xié)議合同
- 叉車月度點(diǎn)檢記錄表
- 提高術(shù)前抗生素執(zhí)行時(shí)間的正確率品管圈
- 餐廳托盤服務(wù)-托盤的操作技能
- 辯字的字理課件
- 四年級(jí)美術(shù)上冊(cè)第11課漫畫(huà)與生活課件
- 高壓配電房點(diǎn)檢表
- 民法典之繼承編法律講座PPT
- 周圍神經(jīng)損傷教案
- 道德與法治五年級(jí)下冊(cè)-5 建立良好的公共秩序(課件)
- 秸稈發(fā)電項(xiàng)目安全預(yù)評(píng)價(jià)報(bào)告
- 蘇教版二年級(jí)數(shù)學(xué)下冊(cè)單元檢測(cè)卷
評(píng)論
0/150
提交評(píng)論