MATLAB程序設(shè)計(jì)課件_第1頁(yè)
MATLAB程序設(shè)計(jì)課件_第2頁(yè)
MATLAB程序設(shè)計(jì)課件_第3頁(yè)
MATLAB程序設(shè)計(jì)課件_第4頁(yè)
MATLAB程序設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩94頁(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)介

控制系統(tǒng)數(shù)字仿真與CAD(34學(xué)時(shí)2學(xué)分)授課教師:姚靜聯(lián)系電話(huà):65984898E-MAIL:yaojing@3/31/20241控制系統(tǒng)數(shù)字仿真與CAD(34學(xué)時(shí)2學(xué)分)授課教師:姚第二章MATLAB程序設(shè)計(jì)3/31/202423/31/202422.1MATLAB簡(jiǎn)介一、簡(jiǎn)介MATLAB是MatrixLaboratory的縮寫(xiě)。除具備卓越的數(shù)值計(jì)算能力外,它還提供了專(zhuān)業(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é)科工具包是專(zhuān)業(yè)性比較強(qiáng)的工具包,控制工具包,信號(hào)處理工具包,通信工具包等都屬于此類(lèi).

開(kāi)放性使MATLAB廣受用戶(hù)歡迎.除內(nèi)部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶(hù)通過(guò)對(duì)源程序的修改或加入自己編寫(xiě)程序構(gòu)造新的專(zhuān)用工具包.3/31/202432.1MATLAB簡(jiǎn)介一、簡(jiǎn)介3/31/20243MATLAB產(chǎn)生的歷史背景在70年代中期,CleveMoler博士和其同事在美國(guó)國(guó)家科學(xué)基金的資助下開(kāi)發(fā)了調(diào)用EISPACK和LINPACK的FORTRAN子程序庫(kù).EISPACK是特征值求解的FOETRAN程序庫(kù),LINPACK是解線性方程的程序庫(kù).在當(dāng)時(shí),這兩個(gè)程序庫(kù)代表矩陣運(yùn)算的最高水平.到70年代后期,身為美國(guó)NewMexico大學(xué)計(jì)算機(jī)系系主任的CleveMoler,在給學(xué)生講授線性代數(shù)課程時(shí),想教學(xué)生使用EISPACK和LINPACK程序庫(kù),但他發(fā)現(xiàn)學(xué)生用FORTRAN編寫(xiě)接口程序很費(fèi)時(shí)間,于是他開(kāi)始自己動(dòng)手,利用業(yè)余時(shí)間為學(xué)生編寫(xiě)EISPACK和LINPACK的接口程序.CleveMoler給這個(gè)接口程序取名為MATLAB,該名為矩陣(matrix)和實(shí)驗(yàn)室(labotatory)兩個(gè)英文單詞的前三個(gè)字母的組合.在以后的數(shù)年里,MATLAB在多所大學(xué)里作為教學(xué)輔助軟件使用,并作為面向大眾的免費(fèi)軟件廣為流傳.1983年春天,CleveMoler到Standford大學(xué)講學(xué),MATLAB深深地吸引了工程師JohnLittle.JohnLittle敏銳地覺(jué)察到MATLAB在工程領(lǐng)域的廣闊前景.同年,他和CleveMoler,SteveBangert一起,用C語(yǔ)言開(kāi)發(fā)了第二代專(zhuān)業(yè)版.這一代的MATLAB語(yǔ)言同時(shí)具備了數(shù)值計(jì)算和數(shù)據(jù)圖示化的功能.

3/31/20244MATLAB產(chǎn)生的歷史背景在70年代中期,CleveMo1984年,CleveMoler和JohnLittle成立了MathWorks公司,正式把MATLAB推向市場(chǎng),并繼續(xù)進(jìn)行MATLAB的研究和開(kāi)發(fā).

在當(dāng)今30多個(gè)數(shù)學(xué)類(lèi)科技應(yīng)用軟件中,就軟件數(shù)學(xué)處理的原始內(nèi)核而言,可分為兩大類(lèi).一類(lèi)是數(shù)值計(jì)算型軟件,如MATLAB,Xmath,Gauss等,這類(lèi)軟件長(zhǎng)于數(shù)值計(jì)算,對(duì)處理大批數(shù)據(jù)效率高;另一類(lèi)是數(shù)學(xué)分析型軟件,Mathematica,Maple等,這類(lèi)軟件以符號(hào)計(jì)算見(jiàn)長(zhǎng),能給出解析解和任意精確解,其缺點(diǎn)是處理大量數(shù)據(jù)時(shí)效率較低.MathWorks公司順應(yīng)多功能需求之潮流,在其卓越數(shù)值計(jì)算和圖示能力的基礎(chǔ)上,又率先在專(zhuān)業(yè)水平上開(kāi)拓了其符號(hào)計(jì)算,文字處理,可視化建模和實(shí)時(shí)控制能力,開(kāi)發(fā)了適合多學(xué)科,多部門(mén)要求的新一代科技應(yīng)用軟件MATLAB.經(jīng)過(guò)多年的國(guó)際競(jìng)爭(zhēng),MATLAB以經(jīng)占據(jù)了數(shù)值軟件市場(chǎng)的主導(dǎo)地位.

3/31/202451984年,CleveMoler和JohnLittle成在MATLAB進(jìn)入市場(chǎng)前,國(guó)際上的許多軟件包都是直接以FORTRANC語(yǔ)言等編程語(yǔ)言開(kāi)發(fā)的。這種軟件的缺點(diǎn)是使用面窄,接口簡(jiǎn)陋,程序結(jié)構(gòu)不開(kāi)放以及沒(méi)有標(biāo)準(zhǔn)的基庫(kù),很難適應(yīng)各學(xué)科的最新發(fā)展,因而很難推廣。MATLAB的出現(xiàn),為各國(guó)科學(xué)家開(kāi)發(fā)學(xué)科軟件提供了新的基礎(chǔ)。在MATLAB問(wèn)世不久的80年代中期,原先控制領(lǐng)域里的一些軟件包紛紛被淘汰或在MATLAB上重建。

時(shí)至今日,經(jīng)過(guò)MathWorks公司的不斷完善,MATLAB已經(jīng)發(fā)展成為適合多學(xué)科,多種工作平臺(tái)的功能強(qiáng)大大大型軟件。在國(guó)外,MATLAB已經(jīng)經(jīng)受了多年考驗(yàn)。在歐美等高校,MATLAB已經(jīng)成為線性代數(shù),自動(dòng)控制理論,數(shù)理統(tǒng)計(jì),數(shù)字信號(hào)處理,時(shí)間序列分析,動(dòng)態(tài)系統(tǒng)仿真等高級(jí)課程的基本教學(xué)工具;成為攻讀學(xué)位的大學(xué)生,碩士生,博士生必須掌握的基本技能。在設(shè)計(jì)研究單位和工業(yè)部門(mén),MATLAB被廣泛用于科學(xué)研究和解決各種具體問(wèn)題。在國(guó)內(nèi),特別是工程界,MATLAB一定會(huì)盛行起來(lái)??梢哉f(shuō),無(wú)論你從事工程方面的哪個(gè)學(xué)科,都能在MATLAB里找到合適的功能。3/31/20246在MATLAB進(jìn)入市場(chǎng)前,國(guó)際上的許多軟件包都是直接以FOR2.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ì)。3/31/202472.1MATLAB簡(jiǎn)介二、語(yǔ)言特點(diǎn)3/31/202472.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)行3/31/202482.1MATLAB簡(jiǎn)介語(yǔ)法限制不嚴(yán)格,程序設(shè)計(jì)自由度大。32.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)3/31/202492.1MATLAB簡(jiǎn)介三、Matlab集成環(huán)境的組成3/32.1MATLAB簡(jiǎn)介四、Matlab軟件的基本使用方法命令窗口

工作空間歷史命令當(dāng)前路徑

3/31/2024102.1MATLAB簡(jiǎn)介四、Matlab軟件的基本使用方法命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)試器3/31/2024112.1MATLAB簡(jiǎn)介(1)命令窗口3/31/202412.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)行3/31/2024122.1MATLAB簡(jiǎn)介主要功能設(shè)置斷點(diǎn)取消斷點(diǎn)單步運(yùn)行進(jìn)入2.1MATLAB簡(jiǎn)介(3)變量查看器在MATLAB中,工作空間(Workspace)是一個(gè)重要的、比較抽象的概念。工作空間指運(yùn)行MATLAB的程序或命令所生成的所有變量和MATLAB提供的常量構(gòu)成的空間。工作空間的特點(diǎn)工作空間在MATLAB運(yùn)行期間一直存在關(guān)閉MATLAB后工作空間自動(dòng)消失3/31/2024132.1MATLAB簡(jiǎn)介(3)變量查看器3/31/20242.1MATLAB簡(jiǎn)介查看變量刪除變量3/31/2024142.1MATLAB簡(jiǎn)介查看變量刪除變量3/31/202412.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所列出的變量保存到磁盤(pán)文件filename中3/31/2024152.1MATLAB簡(jiǎn)介MATLAB的工作空間包含了一組可以2.1MATLAB簡(jiǎn)介Variables所表示的變量列表中,不能用逗號(hào),各個(gè)不同的變量之間只能用空格來(lái)分隔。未列出variables時(shí),表示將當(dāng)前工作空間中所有變量都保持到磁盤(pán)文件中。缺省的磁盤(pán)文件擴(kuò)展名為“.mat”,可以使用“-”定義不同的存儲(chǔ)格式(ASCII、V4等)(2)loadfilenamevariables將以前用save命令保存的變量variables從磁盤(pán)文件中調(diào)入MATLAB工作空間。用load命令調(diào)入的變量,其名稱(chēng)為用save命令保存時(shí)的名稱(chēng),取值也一樣。3/31/2024162.1MATLAB簡(jiǎn)介Variables所表示的變量列表中2.1MATLAB簡(jiǎn)介Variables所表示的變量列表中,不能用逗號(hào),各個(gè)不同的變量之間只能用空格來(lái)分隔。未列出variables時(shí),表示將磁盤(pán)文件中所有變量都調(diào)入工作空間。退出工作空間quit或exit(4)圖形窗口在圖形窗口上可以進(jìn)行繪制曲線、顯示文本、填充顏色等操作。用figure命令建立新的圖形窗口。3/31/2024172.1MATLAB簡(jiǎn)介Variables所表示的變量列表中2.1MATLAB簡(jiǎn)介可以用繪圖語(yǔ)句自動(dòng)創(chuàng)建圖形窗口并在上面繪圖,如plot命令。編輯模態(tài)添加文本添加箭頭添加線段旋轉(zhuǎn)三維圖形3/31/2024182.1MATLAB簡(jiǎn)介可以用繪圖語(yǔ)句自動(dòng)創(chuàng)建圖形窗口并在上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:刪除文件filename3/31/2024192.1MATLAB簡(jiǎn)介(5)文件管理3/31/202412.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:基本矩陣和矩陣操作3/31/2024202.1MATLAB簡(jiǎn)介(6)幫助系統(tǒng)3/31/202422.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)示例窗口3/31/2024212.1MATLAB簡(jiǎn)介helpdatafun:數(shù)據(jù)分析和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)比較方便。3/31/2024222.1MATLAB簡(jiǎn)介五、Matlab編程基礎(chǔ)3/31/22.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)(,)或回車(chē)結(jié)束。如果希望結(jié)果不被顯示,只要在語(yǔ)句之后加上一個(gè)分號(hào)(;)即可。此時(shí)盡管結(jié)果沒(méi)有顯示,但它依然被賦值并在MATLAB工作空間中分配了內(nèi)存。3/31/2024232.1MATLAB簡(jiǎn)介(2)MATLAB最基本的語(yǔ)句是賦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=>’)3/31/2024242.1MATLAB簡(jiǎn)介(3)變量不需要定義就可以直接使用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)下一行命令3/31/2024252.1MATLAB簡(jiǎn)介②disp(A)3/31/20242.1MATLAB簡(jiǎn)介命令窗口的分頁(yè)輸出moreoff:不允許分頁(yè)moreon:允許分頁(yè)more(n):指定每頁(yè)輸出的行數(shù)回車(chē)前進(jìn)一行,空格鍵顯示下一頁(yè)多行命令(…)如果命令語(yǔ)句超過(guò)一行或者太長(zhǎng)希望分行輸入,則可以使用多行命令繼續(xù)輸入。S=1-12+13+4+…9-4-18;3/31/2024262.1MATLAB簡(jiǎn)介命令窗口的分頁(yè)輸出3/31/20242.2數(shù)據(jù)類(lèi)型和運(yùn)算符一、變量(1)變量命名規(guī)則必須以字母開(kāi)頭;

—可以由字母、數(shù)字和下劃線混合組成;變量長(zhǎng)度應(yīng)不大于31個(gè);—字母區(qū)分大小寫(xiě)。(2)特殊變量3/31/2024272.2數(shù)據(jù)類(lèi)型和運(yùn)算符一、變量3/31/2024272.2數(shù)據(jù)類(lèi)型和運(yùn)算符(3)變量操作在命令窗口中,同時(shí)存儲(chǔ)著輸入的命令和創(chuàng)建的所有變量值,它們可以在任何需要的時(shí)候被調(diào)用。如要察看變量a的值,只需要在命令窗口中輸入變量的名稱(chēng)即可:》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)算。3/31/2024282.2數(shù)據(jù)類(lèi)型和運(yùn)算符(3)變量操作3/31/2024282.2數(shù)據(jù)類(lèi)型和運(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)制格式3/31/2024292.2數(shù)據(jù)類(lèi)型和運(yùn)算符如果結(jié)果為整數(shù),則顯示沒(méi)有小數(shù);如果2.2數(shù)據(jù)類(lèi)型和運(yùn)算符三、數(shù)據(jù)類(lèi)型在MATLAB里共有六種數(shù)據(jù)類(lèi)型,每一種類(lèi)型可以是一維、二維和多維的。雙精度型(double)字符型(char)稀疏型(sparse)存儲(chǔ)型(storage)細(xì)胞型(cell)結(jié)構(gòu)型(struct)3/31/2024302.2數(shù)據(jù)類(lèi)型和運(yùn)算符三、數(shù)據(jù)類(lèi)型3/31/2024302.2數(shù)據(jù)類(lèi)型和運(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。3/31/2024312.2數(shù)據(jù)類(lèi)型和運(yùn)算符(1)字符型3/31/2024312.2數(shù)據(jù)類(lèi)型和運(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=firstsecondstringstringmatrixmatrixstrcmp('Yes','Yes')ans=1strcmp('Yes','No')ans=03/31/2024322.2數(shù)據(jù)類(lèi)型和運(yùn)算符a='hello't1='2.2數(shù)據(jù)類(lèi)型和運(yùn)算符(2)結(jié)構(gòu)型結(jié)構(gòu)的建立和訪問(wèn)方法:直接建立結(jié)構(gòu)和各個(gè)域,同時(shí)給各域賦值,結(jié)構(gòu)和域之間用點(diǎn)“.”連接。同樣,訪問(wèn)結(jié)構(gòu)的各個(gè)域時(shí),其格式為:結(jié)構(gòu)名.域名用函數(shù)struct建立結(jié)構(gòu),其用法為:s=struct(‘field1’,values1,‘field2’,values2,┅)例2-1s=struct('type',{'big','little'},'color','red','x',{31})Fieldvalues1values2TypebiglittleColorredredX31s(1).type;s(2).types(1).color;s(2).colors(1).x;s(2).x1×2struct3/31/2024332.2數(shù)據(jù)類(lèi)型和運(yùn)算符(2)結(jié)構(gòu)型Fieldval2.2數(shù)據(jù)類(lèi)型和運(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é)合例:exp2_1,exp2_2+加.^數(shù)組冪-減\左除或反斜杠*矩陣乘法/右除或斜杠.*數(shù)組乘法./數(shù)組除^矩陣冪:冒號(hào)3/31/2024342.2數(shù)據(jù)類(lèi)型和運(yùn)算符四、運(yùn)算符+加.^數(shù)組冪-減\左除或2.2數(shù)據(jù)類(lèi)型和運(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。3/31/2024352.2數(shù)據(jù)類(lèi)型和運(yùn)算符(2)關(guān)系運(yùn)算符3/31/202432.2數(shù)據(jù)類(lèi)型和運(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]3/31/2024362.2數(shù)據(jù)類(lèi)型和運(yùn)算符例:3/31/2024362.2數(shù)據(jù)類(lèi)型和運(yùn)算符(3)邏輯運(yùn)算符&(與)|(或)-(非)結(jié)果是一個(gè)0-1矩陣。當(dāng)邏輯表達(dá)式的值為真時(shí),賦值1,否則為0注意:在處理邏輯運(yùn)算時(shí),運(yùn)算元只有兩個(gè)值即0和1,所以如果指定的數(shù)為0,MATLAB認(rèn)為其為0,而任何數(shù)不等于0,則認(rèn)為是1。例:設(shè)有:A=[5-40-0.5]B=[0109]A&B=[0101]A&1=[1101]A|B=[1101]A|1=[1111]~A=[0010]~1=03/31/2024372.2數(shù)據(jù)類(lèi)型和運(yùn)算符(3)邏輯運(yùn)算符3/31/202432.2數(shù)據(jù)類(lèi)型和運(yùn)算符(4)邏輯函數(shù)all函數(shù)當(dāng)某列的元素都為真時(shí),返回值為1,否則返回0。最終運(yùn)算結(jié)果為一個(gè)0-1行向量any函數(shù)當(dāng)向量中至少有一個(gè)元素為真時(shí),返回值為1,否則返回0。最終運(yùn)算結(jié)果為一個(gè)0-1行向量find函數(shù)用于查找向量中的真元素的下標(biāo),返回由所有真元素下標(biāo)構(gòu)成的列向量。3/31/2024382.2數(shù)據(jù)類(lèi)型和運(yùn)算符(4)邏輯函數(shù)3/31/2024382.3程序控制語(yǔ)句一、循環(huán)語(yǔ)句MATLAB中的循環(huán)語(yǔ)句包括for和while兩種類(lèi)型。(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)行處理。例:exp2_11.m3/31/2024392.3程序控制語(yǔ)句一、循環(huán)語(yǔ)句3/31/2024392.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é)束。3/31/2024402.3程序控制語(yǔ)句(2)while循環(huán)3/31/202442.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í)行。3/31/2024412.3程序控制語(yǔ)句二、選擇語(yǔ)句3/31/2024412.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í)行。3/31/2024422.3程序控制語(yǔ)句if-else格式3/31/202442.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_.m3/31/2024432.3程序控制語(yǔ)句if-elseif格式3/31/2022.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í)行。例exp2_14.m3/31/2024442.3程序控制語(yǔ)句(2)switch語(yǔ)句3/31/202.4矩陣運(yùn)算一、矩陣輸入(1)在命令窗口中輸入在MATLAB中不必描述矩陣的維數(shù)和類(lèi)型,而由輸入的格式和內(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á)式)。大的矩陣可以用分行輸入,回車(chē)鍵代表分號(hào)。3/31/2024452.4矩陣運(yùn)算一、矩陣輸入3/31/2024452.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.5003/31/2024462.4矩陣運(yùn)算例:》y=[2,4,5》a=1;b=2;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=123456789103/31/2024472.4矩陣運(yùn)算例:3/31/2024472.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的單位陣 3/31/2024482.4矩陣運(yùn)算a=logspace(n1,n2,n)3/32.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之間。3/31/2024492.4矩陣運(yùn)算eye([m,n]) %生成m×n的單位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=11113/31/2024502.4矩陣運(yùn)算》eye(2,3)》eye(2)3/31/22.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列的所有元素(提取子塊)。3/31/2024512.4矩陣運(yùn)算二、下標(biāo)引用提取第n列元素提取第m行元素提取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)行排列。3/31/2024522.4矩陣運(yùn)算A(:):得到一個(gè)長(zhǎng)列矢量,該矢量的元素按矩2.4矩陣運(yùn)算(3)矩陣的抽取用下標(biāo)可以從大矩陣?yán)锩娉槿∧承┰亟M成小的矩陣。例:

A=[123;456;789];B=[A(1,1),A(2,3)]B=16(4)刪除矩陣的行和列把空的[]稱(chēng)為空矩陣,即矩陣大小為0×0。可以通過(guò)把矩陣的行或列賦值為空矩陣來(lái)刪除某行或某列。3/31/2024532.4矩陣運(yùn)算(3)矩陣的抽取3/31/2024532.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ǔ)零。3/31/2024542.4矩陣運(yùn)算例:X=[]2.4矩陣運(yùn)算三、矩陣運(yùn)算+;-;*;\和/;^;.*;.\;./;.^(1)矩陣的加減使用+、-運(yùn)算符,并滿(mǎn)足以下兩個(gè)條件之一:類(lèi)型相同,即行數(shù)相等,且列數(shù)相等。其中一個(gè)為標(biāo)量,則矩陣中每一個(gè)元素都和標(biāo)量做加減運(yùn)算。(2)矩陣的乘積使用*運(yùn)算符,必須滿(mǎn)足維數(shù)條件。只有當(dāng)兩個(gè)矩陣中前一個(gè)矩陣的列數(shù)和后一個(gè)矩陣的行數(shù)相同時(shí),才可以進(jìn)行乘法運(yùn)算。3/31/2024552.4矩陣運(yùn)算三、矩陣運(yùn)算3/31/2024552.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)矩陣的冪只有方陣才可以求冪3/31/2024562.4矩陣運(yùn)算(3)矩陣的除法3/31/2024562.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-53/31/2024572.4矩陣運(yùn)算(5)矩陣的點(diǎn)運(yùn)算3/31/2024572.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]3/31/2024582.4矩陣運(yùn)算》a*b=[1323;2951]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)置。

》a=[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=1425363/31/2024592.4矩陣運(yùn)算(6)矩陣的轉(zhuǎn)置》a=[123;452.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=-33/31/2024602.4矩陣運(yùn)算四、矩陣函數(shù)例:3/31/2024602.4矩陣運(yùn)算(3)求特征值與特征向量求解A矩陣的特征值和特征向量,其調(diào)用格式為:

D=eig(A);[V,D]=eig(A);d為矩陣A的特征值向量;求矩陣A的特征向量V及特征值D,滿(mǎn)足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.55383/31/2024612.4矩陣運(yùn)算(3)求特征值與特征向量3/31/20242.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=23/31/2024622.4矩陣運(yùn)算(4)矩陣的尺寸》a=[123;32.4矩陣運(yùn)算(5)奇異值分解求矩陣A的奇異值及分解矩陣,滿(mǎn)足U*S*V=A,其中U、V矩陣為正交矩陣(U*U’=I),S矩陣為對(duì)角矩陣,它的對(duì)角元素即A矩陣的奇異值。[U,S,V]=svd(A)例:a=9868可以驗(yàn)證:

u*u’=Iv*v’=Iu*s*v=a[u,s,v]=svd(a)u=0.7705-0.63750.63750.7705s=15.5765001.5408v=0.6907-0.72310.72310.69073/31/2024632.4矩陣運(yùn)算(5)奇異值分解[u,s,v]=svd(a)2.4矩陣運(yùn)算(6)三角分解將一個(gè)方陣表示成兩個(gè)基本三角陣的乘積,其中一個(gè)三角陣為上三角陣,另一個(gè)為下三角陣。這種分解被稱(chēng)為"LU分解"。

[L,U]=lu(A) %求矩陣A的LU分解,L為下三角矩陣U為上三角矩陣(7)矩陣操作函數(shù):flipud(A):使矩陣上下翻轉(zhuǎn)fliplr(A):使矩陣左右翻轉(zhuǎn)rot90(A):使矩陣逆時(shí)針?lè)D(zhuǎn)90度3/31/2024642.4矩陣運(yùn)算(6)三角分解3/31/2024642.4矩陣運(yùn)算(8)了解矩陣超越函數(shù)在MATLAB中exp、sqrt等命令也可以作用到矩陣上,但這種運(yùn)算是定義在矩陣的單個(gè)元素上的,即分別對(duì)矩陣的每一個(gè)元素進(jìn)行計(jì)算。超越數(shù)學(xué)函數(shù)可以在函數(shù)后加上m而成為矩陣的超越函數(shù),例如:expm,sqrtm。矩陣的超越函數(shù)要求運(yùn)算矩陣為方陣。3/31/2024652.4矩陣運(yùn)算(8)了解矩陣超越函數(shù)3/31/2024652.5多項(xiàng)式一、多項(xiàng)式用行向量表示多項(xiàng)式P(x)=anxn+an-1xn-1+…+a1x1+a0,其系數(shù)向量表示為:P=[an,an-1,…,a1,a0]。二、多項(xiàng)式的創(chuàng)建(1)直接輸入法 例如:P=[1,2,3,4](2)poly(A)

%創(chuàng)建方陣A的特征多項(xiàng)式(3)poly(a)

%如果a為向量[bnbn-1…b1b0],則創(chuàng)建(x-b0)(x-b1)…(x-bn-1)(x-bn)生成的多項(xiàng)式的系數(shù)向量3/31/2024662.5多項(xiàng)式一、多項(xiàng)式用行向量表示3/31/2024662.5多項(xiàng)式三、多項(xiàng)式的常用函數(shù)(1)roots()

%求多項(xiàng)式的根(2)p=poly(A)

%求矩陣的特征多項(xiàng)式(3)polyval(p,x)

%求當(dāng)多項(xiàng)式p的參數(shù)為某個(gè)特定值x時(shí)的多項(xiàng)式的值(4)polyvalm(p,A)

%和polyval作用相同,輸入?yún)?shù)值也可為方陣A3/31/2024672.5多項(xiàng)式三、多項(xiàng)式的常用函數(shù)3/31/2024672.5多項(xiàng)式例:多項(xiàng)式表示為:p=[1-12025116]使用函數(shù)roots可以求出多項(xiàng)式等于0的根,用列向量表示若已知多項(xiàng)式等于0的根,函數(shù)poly可以求出相應(yīng)多項(xiàng)式p=poly(r)p=1-12-025116r=roots(p)r=11.74732.7028-1.2251+1.4672i-1.2251-1.4672i3/31/2024682.5多項(xiàng)式例:多項(xiàng)式p=poly(r)r=roots(p2.5多項(xiàng)式四、多項(xiàng)式運(yùn)算c=conv(A,B)

%多項(xiàng)式乘法函數(shù)A=[123];B=[12]C=conv(A,B)=1476conv指令可以嵌套使用,如conv(conv(a,b),c)(2)[Q,R]=deconv(A,B)

%多項(xiàng)式除法函數(shù)Q=123%商多項(xiàng)式R=000%余多項(xiàng)式(3)Polyder(A)

%求多項(xiàng)式的微分多項(xiàng)式polyder(A)=22 3/31/2024692.5多項(xiàng)式四、多項(xiàng)式運(yùn)算3/31/2024692.5多項(xiàng)式(4)polyval(p,n)

%求多項(xiàng)式函數(shù)值,將值n代入多項(xiàng)式求解polyval(A,2)=11五、多項(xiàng)式曲線的擬合多項(xiàng)式擬合又稱(chēng)為曲線擬合,其目的就是在眾多的樣本點(diǎn)中進(jìn)行擬合,找出滿(mǎn)足樣本點(diǎn)分布的多項(xiàng)式。這在分析實(shí)驗(yàn)數(shù)據(jù),將實(shí)驗(yàn)數(shù)據(jù)做解析描述時(shí)非常有用。格式為:p=polyfit(x,y,n)其中,x和y為已知數(shù)據(jù)的橫坐標(biāo)和縱坐標(biāo)向量,n為多項(xiàng)式的次數(shù)。例exp2_15.m3/31/2024702.5多項(xiàng)式(4)polyval(p,n)%2.5多項(xiàng)式六、多項(xiàng)式插值多項(xiàng)式插值是指根據(jù)給定的有限個(gè)樣本點(diǎn),產(chǎn)生另外的估計(jì)點(diǎn)以達(dá)到數(shù)據(jù)更為平滑的效果。該技巧在信號(hào)處理與圖像處理上應(yīng)用廣泛。所用指令有一維的interp1、二維的interp2、三維的interp3。這些指令分別有不同的方法(method),設(shè)計(jì)者可以根據(jù)需要選擇適當(dāng)?shù)姆椒ǎ詽M(mǎn)足系統(tǒng)屬性的要求。Helppolyfun可以得到更詳細(xì)的內(nèi)容。y=interp1(xs,ys,x,’method’)在有限樣本點(diǎn)向量xs與ys中,插值產(chǎn)生向量x和y,所用方法定義在method中,有4種選擇:nearest:執(zhí)行速度最快,輸出結(jié)果為直角轉(zhuǎn)折linear:默認(rèn)值,在樣本點(diǎn)上斜率變化很大spline:最花時(shí)間,但輸出結(jié)果也最平滑cubic:最占內(nèi)存,輸出結(jié)果與spline差不多例exp2_16.m3/31/2024712.5多項(xiàng)式六、多項(xiàng)式插值3/31/2024712.6函數(shù)與M文件用Matlab語(yǔ)言編寫(xiě)的可以在Matlab環(huán)境中運(yùn)行的程序稱(chēng)為M文件。M文件以.m為擴(kuò)展名,M文件分為兩種:命令文件和函數(shù)文件。一、命令文件命令文件沒(méi)有輸入?yún)?shù)也沒(méi)有輸出參數(shù),只是一些Matlab命令和函數(shù)的組合。命令文件可以操作工作空間的變量,也可以生成新的變量當(dāng)命令文件執(zhí)行結(jié)束后新變量將保存在工作空間中,不會(huì)被自動(dòng)清除。3/31/2024722.6函數(shù)與M文件用Matlab語(yǔ)言編寫(xiě)的可以在Matl2.6函數(shù)與M文件二、函數(shù)文件函數(shù)接收輸入?yún)?shù),返回輸出參數(shù)。函數(shù)文件也是以“.m”為擴(kuò)展名。三、程序文件與函數(shù)文件的主要區(qū)別函數(shù)允許通過(guò)數(shù)值進(jìn)行參數(shù)傳遞,而且函數(shù)使用局部變量而不是全局變量操作。函數(shù)文件的第一行必須包括“function”這個(gè)關(guān)鍵字。函數(shù)文件的文件名必須和函數(shù)定義的函數(shù)名稱(chēng)相同。3/31/2024732.6函數(shù)與M文件二、函數(shù)文件3/31/2024732.6函數(shù)與M文件四、MATLAB的函數(shù)M文件通常由以下幾個(gè)部分組成(1)函數(shù)定義行函數(shù)M文件的第一行用關(guān)鍵字“function”把M文件定義為一個(gè)函數(shù)并指定它的名字,并且與文件名必須相同,同時(shí)定義了函數(shù)的輸入和輸入?yún)?shù)。輸入?yún)?shù)的定義用小括號(hào)(),如果有多個(gè)輸入?yún)?shù)則用逗號(hào)分隔;輸出參數(shù)的定義用中括號(hào)[],如果有多個(gè)輸出參數(shù)則用逗號(hào)分隔。(2)H1行

所謂H1行指幫助文本的第一行,它緊跟在定義行之后并以“%”符號(hào)開(kāi)頭,用于概括說(shuō)明函數(shù)名和函數(shù)的功能。在命令窗口用lookfor命令時(shí)將顯示所尋求函數(shù)的H1行。3/31/2024742.6函數(shù)與M文件四、MATLAB的函數(shù)M文件通常由以下2.6函數(shù)與M文件(3)函數(shù)幫助文本幫助文本指位于H1行之后函數(shù)體之前的說(shuō)明文本,它同樣以“%”符號(hào)開(kāi)頭,一般用來(lái)比較詳細(xì)地介紹函數(shù)的功能和用法。在命令窗口用help命令時(shí)將顯示函數(shù)的H1行和所有幫助文本(4)函數(shù)體是函數(shù)的主體部分,包括進(jìn)行運(yùn)行和賦值操作的所有MATLAB程序代碼,其中可以有流程控制、輸入輸出、計(jì)算、賦值、注釋以及函數(shù)調(diào)用等操作。(5)注釋除了函數(shù)開(kāi)始獨(dú)立的幫助文本外,還可以在函數(shù)體中添加對(duì)語(yǔ)句的注釋。注釋必須以“%”符號(hào)開(kāi)頭,MATLAB在編譯執(zhí)行M文件時(shí)把每一行中“%”后面的全部?jī)?nèi)容作為注釋不進(jìn)行編譯。3/31/2024752.6函數(shù)與M文件(3)函數(shù)幫助文本3/31/2024752.6函數(shù)與M文件五、子函數(shù)一個(gè)M文件中可以定義多個(gè)函數(shù),其中第一個(gè)定義的函數(shù)稱(chēng)為主函數(shù),主函數(shù)名必須與M文件名相同,其它函數(shù)稱(chēng)為子函數(shù)。子函數(shù)只能被定義它的文件中的函數(shù)調(diào)用,其它函數(shù)和文件不能調(diào)用。3/31/2024762.6函數(shù)與M文件五、子函數(shù)3/31/2024762.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)先3/31/2024772.7數(shù)據(jù)的可視化一、圖形窗口3/31/2024772.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繪制曲線。3/31/2024782.7數(shù)據(jù)的可視化三、基本的繪圖命令plot3/31/202.7數(shù)據(jù)的可視化四、常用繪制二維圖形的命令五、基本繪圖控制數(shù)據(jù)的可視化的一般步驟為:①準(zhǔn)備繪圖需要的數(shù)據(jù);②指定繪圖的窗口或者區(qū)域;函數(shù)軸的刻度方式Loglog縱橫軸均采用對(duì)數(shù)坐標(biāo)Semilogx縱軸采用線性坐標(biāo),橫軸采用對(duì)數(shù)坐標(biāo)Semilogy縱軸采用對(duì)數(shù)坐標(biāo),橫軸采用線性坐標(biāo)plotyy在圖的左右兩側(cè)分別建立縱坐標(biāo)軸3/31/2024792.7數(shù)據(jù)的可視化四、常用繪制二維圖形的命令函數(shù)軸的刻度方2.7數(shù)據(jù)的可視化③調(diào)用基本繪圖命令;④選擇線型、顏色、數(shù)據(jù)點(diǎn)形狀;⑤坐標(biāo)軸控制,包括顯示范圍、刻度線、比例、網(wǎng)格線;⑥標(biāo)注控制,包括坐標(biāo)軸名稱(chēng)、標(biāo)題、相應(yīng)文本等。六、plot控制功能:在調(diào)用函數(shù)plot時(shí),可以指定線型,顏色,和數(shù)據(jù)點(diǎn)的圖標(biāo)。格式:plot(x,y,‘color_linestyle_marker’)說(shuō)明:參數(shù)color_linestyle_marker為一個(gè)字符串,由顏色、線型、數(shù)據(jù)點(diǎn)的圖標(biāo)組成。3/31/2024802.7數(shù)據(jù)的可視化③調(diào)用基本繪圖命令;3/31/202482.7數(shù)據(jù)的可視化線型字符定義表顏色字符定義表字符定義線型字符定義線型-實(shí)線(默認(rèn))--虛線:點(diǎn)劃線-.點(diǎn)連線none無(wú)線

字符定義顏色字符定義顏色yyellow(黃)mmagenta(洋紅)ccyan(青)rred(紅)ggreen(綠)bblue(蘭)默認(rèn)wwhite(白)kblack(黑)3/31/2024812.7數(shù)據(jù)的可視化線型字2.7數(shù)據(jù)的可視化七、坐標(biāo)軸控制axis([xmin,xmax,ymin,ymax])指定軸的顯示范圍,四個(gè)輸入?yún)?shù)分別為橫軸顯示的最小值和最大值、縱軸顯的最小值和最大值,可以用Inf和-Inf表示。axissquare一般情況下,MATLAB給出的圖形窗口不是正方形,所有顯示的圖形區(qū)域也不是正方形。對(duì)應(yīng)兩軸的比例,一般也是不相等的??梢杂么嗣钪付▋奢S的顯示的長(zhǎng)度相同。axistight用于繪制指定數(shù)據(jù)的范圍。“equal”和“tight”也可以同時(shí)選中。3/31/2024822.7數(shù)據(jù)的可視化七、坐標(biāo)軸控制3/31/2024822.7數(shù)據(jù)的可視化axisequal用于指定兩軸的顯示比例相同。set(gca,’xtick’,[……]),set(gca,’ytick’,[……])設(shè)置橫軸(X軸)、縱軸(Y軸)的刻度線,第三個(gè)輸入?yún)?shù)是一個(gè)刻度向量,并按照等分升序原則排列。八、刪格控制:控制圖形窗口的柵格是否被顯示。

gridon

%顯示柵格

gridoff %隱藏柵格3/31/2024832.7數(shù)據(jù)的可視化axisequal3/31/202482.7數(shù)據(jù)的可視化九、追加控制:控制繪圖方式,即在當(dāng)前窗口繪圖時(shí)是否清除原窗口上來(lái)的圖形 holdon

%繪圖時(shí)不清除繪圖窗口中原有的圖形holdoff %繪圖時(shí)清除繪圖窗口中原有的所有圖形十、標(biāo)注控制:圖形上加上適當(dāng)?shù)奈淖终f(shuō)明。xlable(‘string’,‘FontSize’,size),ylable(‘string’,FontSize’,size)顯示坐標(biāo)軸的名稱(chēng),string為坐標(biāo)軸名稱(chēng)字符串,size為使用的字體尺寸title(‘string’,‘FontSize’,size顯示整個(gè)圖形的標(biāo)題,string為標(biāo)題字符串,size為字體大小。text(x,y,‘stirng’)在繪圖窗口的坐標(biāo)(x,y)處顯示字符串string。3/31/2024842.7數(shù)據(jù)的可視化九、追加控制:控制繪圖方式,即在當(dāng)前窗2.7數(shù)據(jù)的可視化legend(‘字符串1’,‘字符串2’,…,‘字符串n’)在屏幕上開(kāi)啟一個(gè)小視窗,然后依據(jù)繪圖命令的先后次序,用對(duì)應(yīng)的字符串區(qū)分圖形上的線。例:exp2_5_.m十一、其他subplot(mnk):分割圖形顯示窗口m:上下分割個(gè)數(shù),n:左右分割個(gè)數(shù),k:子圖編號(hào)例exp2_6.m3/31/2024852.7數(shù)據(jù)的可視化legend(‘字符串1’,‘字符串2’2.7數(shù)據(jù)的可視化對(duì)數(shù)坐標(biāo)圖形semilogx:繪制以x軸為對(duì)數(shù)坐標(biāo)(以10為底),y軸為線性坐標(biāo)的半對(duì)數(shù)坐標(biāo)圖形。semilogy:繪制以y軸為對(duì)數(shù)坐標(biāo)(以10為底),x軸為線性坐標(biāo)的半對(duì)數(shù)坐標(biāo)圖形。例:exp2_17.m了解應(yīng)用型繪圖指令:用于數(shù)值統(tǒng)計(jì)分析或離散數(shù)據(jù)處理bax(x,y);hist(y,x);stairs(x,y);stem(x,y)例:exp2_7.m注意對(duì)于圖形的屬性編輯同樣可以通過(guò)在圖形窗口上直接進(jìn)行。但圖形窗口關(guān)閉之后編輯結(jié)果不會(huì)保存3/31/2024862.7數(shù)據(jù)的可視化對(duì)數(shù)坐標(biāo)圖形3/31/2024862.8程序設(shè)計(jì)入門(mén)一、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í)行速度。3/31/2024872.8程序設(shè)計(jì)入門(mén)一、MATLBA程序的基本設(shè)計(jì)原則3/2.8程序設(shè)計(jì)入門(mén)4、input指令可以用來(lái)輸入一些臨時(shí)的數(shù)據(jù);而對(duì)于大量參數(shù),則通過(guò)建立一個(gè)存儲(chǔ)參數(shù)的子程序,在主程序中用子程序的名稱(chēng)來(lái)調(diào)用。5、程序盡量模塊化,也就是采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來(lái)執(zhí)行全部的操作。6、充分利用Debugger來(lái)進(jìn)行程序的調(diào)試(設(shè)置斷點(diǎn)、單步執(zhí)行、連續(xù)執(zhí)行),并利用其他工具箱或圖形用戶(hù)界面(GUI)的設(shè)計(jì)技巧,將設(shè)計(jì)結(jié)果集成到一起。2-27、設(shè)置好MATLAB的工作路徑,以便程序運(yùn)行。3/31/2024882.8程序設(shè)計(jì)入門(mén)4、input指令可以用來(lái)輸入一些臨時(shí)的2.8程序設(shè)計(jì)入門(mén)8、MATLAB程序的基本組成結(jié)構(gòu)%說(shuō)明清除命令:清除workspace中的變量和圖形(clear,close)定義變量:包括全局變量的聲明及參數(shù)值的設(shè)定逐行執(zhí)行命令:指MATLAB提供的運(yùn)算指令或工具箱提供的專(zhuān)用命令………控制循環(huán):包含for,ifthen,switch,while等語(yǔ)句逐行執(zhí)行命令………end繪圖命令:將運(yùn)算結(jié)果繪制出來(lái)當(dāng)然更復(fù)雜程序還需要調(diào)用子程序,或與simulink以及其他應(yīng)用程序結(jié)合起來(lái)。3/31/2024892.8程序設(shè)計(jì)入門(mén)8、MATLAB程序的基本組成結(jié)構(gòu)3/32.8程序設(shè)計(jì)入門(mén)二、M文件的編輯及MATLAB工作路徑的設(shè)置進(jìn)入MATLAB的Editor/Debugger窗口來(lái)編輯程序在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同屬性。 綠色:注解;黑色:程序主體;紅色:屬性值的設(shè)定;藍(lán)色:控制流程。在運(yùn)行程序之前,必須設(shè)置好MATLAB的工作路徑,使得所

溫馨提示

  • 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)論