建模培訓(xùn) matlab教程入門_第1頁
建模培訓(xùn) matlab教程入門_第2頁
建模培訓(xùn) matlab教程入門_第3頁
建模培訓(xùn) matlab教程入門_第4頁
建模培訓(xùn) matlab教程入門_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MATLAB軟件及其應(yīng)用王林君江蘇大學(xué)理學(xué)院ApplicationofMatlabLanguage10/10/20231第1頁課程作用課程目標(biāo)課程特點(diǎn)課程安排10/10/20232ApplicationofMatlabLanguage第2頁課程作用在歐美各高等學(xué)校,Matlab成為線性代數(shù)、自動控制理論、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真、圖像處理等很多課程基本教學(xué)工具,成為本科生、碩士生和博士生必須掌握基本技能。在設(shè)計研究單位和工業(yè)部門,Matlab已被廣泛地用于研究和處理多種詳細(xì)工程問題。能夠預(yù)見,Matlab將在我國科學(xué)研究和工程應(yīng)用中發(fā)揮越來越大作用。10/10/20233ApplicationofMatlabLanguage第3頁

講授MATLAB語言基礎(chǔ)入門知識,MATLAB桌面工具使用辦法,重點(diǎn)介紹MATLAB數(shù)據(jù)可視化、數(shù)值計算基本步驟以及如何使用MATLAB語言編寫整潔、高效、規(guī)范程序。通過本課程學(xué)習(xí),理解、熟悉、掌握MATLAB基本編程辦法,并具有初步利用計算機(jī)處理、處理實(shí)際問題能力,為深入學(xué)習(xí)后續(xù)專業(yè)課程和參與建模競賽做好準(zhǔn)備。本課程目標(biāo)(ObjectivesofThisCourse

)本課程特點(diǎn)(FeaturesofThisCourse

交叉性課程,是計算機(jī)技術(shù)、數(shù)學(xué)理論知識以及很多工程理論知識綜合。實(shí)踐性課程。內(nèi)容多,學(xué)時少,要求同窗上課認(rèn)真聽講,要充足利用課余上機(jī)實(shí)踐消化、理解、掌握課上解說內(nèi)容。10/10/20234ApplicationofMatlabLanguage第4頁課程安排課堂教學(xué):3-4次課上機(jī)試驗(yàn):課外自己完成主要參照書《精通MATLAB6.5》張志涌等編著,北航出版,2023年《高等應(yīng)用數(shù)學(xué)問題Matlab求解》薛定宇等著,清華大學(xué)出版社,2023年《Matlab程序設(shè)計與應(yīng)用》劉衛(wèi)國主編,高等教育出版社10/10/20235ApplicationofMatlabLanguage第5頁講課內(nèi)容講授MATLAB入門知識。講授MATLAB可視基本功能。講授MATLAB在建模中基本應(yīng)用。10/10/20236ApplicationofMatlabLanguage第6頁第一講

Matlab入門知識序言Matlab軟件概述Matlab桌面環(huán)境及基本知識10/10/20237ApplicationofMatlabLanguage第7頁1Matlab概述內(nèi)容Matlab發(fā)展歷史Matlab產(chǎn)品家族(Matlab

familyofproducts)體系Matlab語言特點(diǎn)。目標(biāo)全面理解Matlab軟件包激發(fā)對Matlab軟件學(xué)習(xí)愛好。10/10/20238ApplicationofMatlabLanguage第8頁1.1MATLAB歷史及影響

70年代中期,CleveMoler博土及其同事在美國國家基金會幫助下,開發(fā)了LINPACK和EISPACKFORTRAN語言子程序庫,這兩個程序庫代表了當(dāng)初矩陣運(yùn)算最高水平。到了70年代后期,身為美國新墨西哥州大學(xué)計算機(jī)系系主任CIeveMoler,在給學(xué)生上線性代數(shù)學(xué)時,為了讓學(xué)生能使用這兩個子程序庫,同步又不用在編程上花費(fèi)過多時間,開始著手用FORTRAN語言為學(xué)生編寫使用LINPACK和EISPACK接口程序,他將這個程序取名為MATLAB,其名稱是由MATrix和LABoratory(矩陣試驗(yàn)室)兩個單詞前三個字母所合成。在1978年,Matlab就面世了。這個程序取得了很大成功,受到了學(xué)生廣泛歡迎。在后來幾年里,Matlab在多所大學(xué)里作為教學(xué)輔助軟件使用,并作為面向大眾無償軟件廣為流傳。CleveMoler10/10/20239ApplicationofMatlabLanguage第9頁

將MATLAB商品化不是CleveMoler,而是一種名叫JackLittle人。當(dāng)無償MATLAB軟件到Stanford大學(xué),JackLittle正在該校主修控制,便接觸到了當(dāng)初MATLAB,直覺告訴他,這是一種具有巨大發(fā)展?jié)摿浖?。因此他在畢業(yè)沒多久,就開始用C語言重新編寫了MATLAB關(guān)鍵。在Moler幫助下,于1984年成立MathWorks公司,初次推出MATLAB商用版。在其商用版推出早期,MATLAB就以其優(yōu)秀品質(zhì)(高效數(shù)據(jù)計算能力和開放體系構(gòu)造)占據(jù)了大部分?jǐn)?shù)學(xué)計算軟件市場,本來應(yīng)用于控制領(lǐng)域里某些封閉式數(shù)學(xué)計算軟件包(如英國UMIST、瑞典LUND和SIMNON、德國KEDDC)就紛紛被淘汰或在MATLAB上重建。JackLittle10/10/202310ApplicationofMatlabLanguage第10頁1992年,支持Windows3.xMATLAB4.0版本推出,增加了Simulink,Control,NeuralNetwork,SignalProcessing等專用工具箱。

1993年11月,MathWorks公司推出了Matlab4.1,其中主要增加了符號運(yùn)算功能。當(dāng)升級至Matlab4.2c,這一功能在顧客中得到廣泛應(yīng)用。1997年,Matlab5.0版本問世了,實(shí)現(xiàn)了真正32位運(yùn)算,加快數(shù)值計算,圖形體現(xiàn)有效。

2023年初,MathWorks公司推出了Matlab6.0(R12)。2023年7月,推出了Matlab6.5(R13),在這一版本中Simulink升級到了5.0,性能有了很大提升,另一大特點(diǎn)是推出了JIT程序加速器,Matlab計算速度有了顯著提升。2023年9月,推出了MAILAB7.1(Release14SP3),在這一版本中Simulink升級到了6.3,軟件性能有了新提升,顧客界面愈加友好。值得說明是,MatlabV7.1版采取了更先進(jìn)數(shù)學(xué)程序庫,即“LAPACK”和“BLAS”。目前,Matlab軟件支持多種系統(tǒng)平臺,如常見WindowsNT/XP、UNIX、Linux等。Matlab版本發(fā)展10/10/202311ApplicationofMatlabLanguage第11頁

MATLAB就是這樣通過了近30年專門打造、20數(shù)年千錘百煉,它以高性能數(shù)組運(yùn)算(包括矩陣運(yùn)算)為基礎(chǔ),不但實(shí)現(xiàn)了大多數(shù)數(shù)學(xué)算法高效運(yùn)行函數(shù)和數(shù)據(jù)可視化,并且提供了非常高效計算機(jī)高級編程語言,在顧客可參與情況下,多種專業(yè)領(lǐng)域工具箱不停開發(fā)和完善,MATLAB取得了巨大成功,已廣泛應(yīng)用于科學(xué)研究、工程應(yīng)用,用于數(shù)值計算分析、系統(tǒng)建模與仿真。早在20世紀(jì)90年代初,歐美等發(fā)達(dá)國家大學(xué)就將MATLAB列為一種必須掌握編程語言。近幾年來,國內(nèi)很多大學(xué)也將MATLAB列為了本科生必修課程。與Maple、Mathematica數(shù)學(xué)計算軟件相比,MATLAB以數(shù)值計算見長,而Maple等以符號運(yùn)算見長,能給出解析解和任意精度解,而處理大量數(shù)據(jù)能力遠(yuǎn)不如MATLAB。MATLAB軟件功能之強(qiáng)大、應(yīng)用之廣泛,已成為為21世紀(jì)最為主要科學(xué)計算語言??梢妼W(xué)習(xí)掌握這一工具主要性。10/10/202312ApplicationofMatlabLanguage第12頁1.3MATLAB編程語言特點(diǎn)

語法規(guī)則簡單。尤其內(nèi)定編程規(guī)則,與其他編程語言(如C、Fortran等)相比更接近于常規(guī)數(shù)學(xué)表達(dá)。對于數(shù)組變量使用,不需類型申明,無需事先申請內(nèi)存空間。MATLAB語言主要有下列幾個特點(diǎn):

MATLAB基本語言環(huán)境提供了數(shù)以千計計算函數(shù),極大提升了顧客編程效率。如,一種fft函數(shù)即可完成對指定數(shù)據(jù)迅速傅里葉變換,這一任務(wù)假如用C語言來編程實(shí)現(xiàn)話,最少要用幾十條C語言才能完成。

因此,MATLAB是一種簡單易用、功能強(qiáng)大高效編程語言。

平臺無關(guān)性(可移植性)。MATLAB軟件能夠運(yùn)行在很多不一樣計算機(jī)系統(tǒng)平臺上,如WindowsMe/NT/2023/XP、很多不一樣版本UNIX以及Linux。無論你在哪一種平臺上編寫程序都能夠運(yùn)行在其他平臺上,對于MATLAB數(shù)據(jù)文獻(xiàn)也同樣,是平臺無關(guān)。極大保護(hù)了顧客勞動、方便了顧客。其繪圖功能也是平臺無關(guān)。無論任何系統(tǒng)平臺,只要MATLAB能夠運(yùn)行,其圖形功能命令就能正常運(yùn)行。

MATLAB是一種腳本式(scripted)解釋型語言,無論是命令、函數(shù)或變量,只要在命令窗口提醒符下鍵入,并“回車(Enter)”,MATLAB都給予解釋執(zhí)行。10/10/202313ApplicationofMatlabLanguage第13頁功能強(qiáng)大數(shù)值運(yùn)算優(yōu)勢符號運(yùn)算優(yōu)勢(Maple)強(qiáng)大2D、3D數(shù)據(jù)可視化功能許多具有算法自適應(yīng)能力功能函數(shù)10/10/202314ApplicationofMatlabLanguage第14頁語言簡單、內(nèi)涵豐富語言及其書寫形式非常接近于常規(guī)數(shù)學(xué)書寫形式;其操作和功能函數(shù)指令就是常用計算機(jī)和數(shù)學(xué)書上某些簡單英文單詞體現(xiàn),如:help、clear等;完備幫助系統(tǒng),易學(xué)易用。擴(kuò)充能力、可開發(fā)能力較強(qiáng)MATLAB完全成了一種開放系統(tǒng)顧客能夠開發(fā)自己工具箱能夠方便地與Fortran、C等語言接口

編程易、效率高

Matlab以數(shù)組為基本計算單元具有大量算法優(yōu)化功能函數(shù)10/10/202315ApplicationofMatlabLanguage第15頁購買(下載)Matlab軟件Matlab安裝插入光盤,自動運(yùn)行;或點(diǎn)擊安裝程序setup.exe必須安裝部件MatlabSymbolicMathToolboxExtendedSymbolicMath這里以Matlab7.0.4為例自R2023a開始增加了激活要求10/10/202316ApplicationofMatlabLanguage第16頁2MATLAB桌面環(huán)境及入門知識啟動與退出MATLAB命令窗口及使用數(shù)值表達(dá)、變量、體現(xiàn)式命令歷史窗口工作空間獲取在線幫助10/10/202317ApplicationofMatlabLanguage第17頁2.1啟動與退出MATLAB啟動MATLAB直接用鼠標(biāo)雙擊桌面上MATLAB7.1圖標(biāo)或Windows桌面“開始”—〉“所有程序”—〉“MATLAB7.1”—〉“MATLAB7.1”。退出MATLAB關(guān)閉MATLAB桌面在命令窗口執(zhí)行quit或exit命令MATLAB缺省桌面(見下頁)10/10/202318ApplicationofMatlabLanguage第18頁菜單欄工具欄文獻(xiàn)編輯窗口工作空間歷史命令窗口Start菜單命令窗口命令提醒符2.1啟動與退出MATLAB(續(xù))10/10/202319ApplicationofMatlabLanguage第19頁2.2命令窗口使用激活命令窗口?!?gt;>”與閃爍光標(biāo)一起表白系統(tǒng)就緒,等候輸入。命令窗口脫離MATLAB桌面。簡單計算【例2.2-1】計算(1)在MATLAB命令窗口輸入下列內(nèi)容:>>(12+2*(7-4))/3^2(2)按【Enter】鍵,指令執(zhí)行。(3)返回計算成果:ans=2

10/10/202320ApplicationofMatlabLanguage第20頁2.2命令窗口(續(xù))〖說明〗在命令窗口【Enter】鍵提交命令執(zhí)行。Matlab所用運(yùn)算符(如+、-、^等)是多種計算程序中常見。計算成果中“ans”是英文“answer”一種縮寫,其含義就是“運(yùn)算答案”。ans是Matlab一種預(yù)定義變量。10/10/202321ApplicationofMatlabLanguage第21頁2.2命令窗口(續(xù))簡單計算(續(xù))【例2.2-2】計算sin(45?)>>sin(45*pi/180)Matlab中正弦函數(shù)sin就是常見正弦函數(shù)。它參數(shù)值是以“弧度”為單位。pi也是Matlab預(yù)定義變量。pi=3.14159…Matlab對字母大小寫是敏感。【例2.2-3】求值,其中x=4.92。

>>sqrt(2*exp(4.92+0.5)+1)Matlab中開平方—sqrt(x),是英文squareroot縮寫

。Matlab中指數(shù)函數(shù)exp(x),常見體現(xiàn)方式。ans=0.7071ans=21.278110/10/202322ApplicationofMatlabLanguage第22頁2.2命令窗口

(續(xù))“clc”清除窗口顯示內(nèi)容命令?!纠?.2-4】求值。

>>y=2*sin(0.3*pi)/(1+sqrt(5))y=0.5000【例2.2-5】計算值。

>>y=2*cos(0.3*pi)/(1+sqrt(5))y=0.3633命令行編輯“↑”鍵調(diào)回已輸入過命令。修改。10/10/202323ApplicationofMatlabLanguage第23頁2.2命令窗口

(續(xù))【例2.2-5】計算半徑為5.2m圓周長和面積。>>radius=5.2;%圓半徑>>area=pi*5.2^2,

circle_len=2*pi*5.2area=84.9487circle_len=32.6726以上兩例,命令行中用到了等號“=”。計算成果不再賦給“ans”,而是賦給顧客指定變量y、area、circle_len。無論是預(yù)定義變量還是顧客自定義變量都被存放在系統(tǒng)工作空間內(nèi),即系統(tǒng)定義一種存放窗口變量內(nèi)存空間。Who、whos命令用來顯示工作空間變量clear命令用來清除工作空間變量。10/10/202324ApplicationofMatlabLanguage第24頁2.2命令窗口(續(xù))>>who>>whosYourvariablesare:anscircle_lenyarearadius

NameSizeBytesClassans1x18doublearrayarea1x18doublearraycircle_len1x18doublearrayradius1x18doublearrayy1x18doublearrayGrandtotalis5elementsusing40bytes10/10/202325ApplicationofMatlabLanguage第25頁2.2命令窗口

(續(xù))>>cleary>>whoYourvariablesare:anscircle_lenarearadius

>>clearansarea>>whosYourvariablesare:NameSizeBytesClasscircle_len1x18doublearrayradius1x18doublearrayGrandtotalis2elementsusing16bytes10/10/202326ApplicationofMatlabLanguage第26頁2.2命令窗口

(續(xù))數(shù)值顯示格式設(shè)置缺省顯示格式:簡潔短(shortg)格式窗口命令及語法格式:format顯示格式關(guān)鍵字如:formatlong%15位數(shù)字顯示常見通用命令命令 含義clc 清除命令窗口顯示內(nèi)容clear 清除Matlab工作空間中保存變量who或whos 顯示Matlab工作空間中變量信息dir 顯示目前工作目錄文獻(xiàn)和子目錄清單cd 顯示或設(shè)置目前工作目錄type 顯示指定m文獻(xiàn)內(nèi)容help或doc 獲取在線幫助quit或exit 關(guān)閉/推出MATALB10/10/202327ApplicationofMatlabLanguage第27頁2.3工作空間查看工作空間內(nèi)存變量,能夠由who、whos。命名新變量。修變化量名刪除變量繪圖保存變量數(shù)據(jù)裝入數(shù)據(jù)10/10/202328ApplicationofMatlabLanguage第28頁2.4歷史窗口歷史窗口:首先統(tǒng)計每次啟動時間并統(tǒng)計在命令窗口輸入命令,本次運(yùn)行期間,輸入所有命令被統(tǒng)計為一組,并以本次啟動時間為標(biāo)志。使用歷史窗口:能夠查看命令窗口輸入過命令或語句能夠選擇一條或多條命令執(zhí)行拷貝、執(zhí)行、創(chuàng)建M文獻(xiàn)等。要清除歷史統(tǒng)計,能夠選擇Edit菜單中ClearCommandHistory命令10/10/202329ApplicationofMatlabLanguage第29頁2.5目前目錄窗口和搜索途徑目前目錄窗口:指Matlab運(yùn)行時工作目錄。只有在目前目錄和搜索途徑下文獻(xiàn)、函數(shù)才能夠被運(yùn)行和調(diào)用。假如沒有特殊指明,數(shù)據(jù)文獻(xiàn)也將寄存在目前目錄下;顧客能夠?qū)⒆约汗ぷ髂夸浽O(shè)置成目前目錄,從而使得所有操作都在目前目錄中進(jìn)行。10/10/202330ApplicationofMatlabLanguage第30頁搜索途徑:指Matlab執(zhí)行過程中對變量、函數(shù)和文獻(xiàn)進(jìn)行搜索途徑。在File菜單中選擇SetPath命令或在命令窗口輸入pathtool命令,出現(xiàn)搜索途徑設(shè)置對話框:!修改完搜索途徑后,需要進(jìn)行保存。10/10/202331ApplicationofMatlabLanguage第31頁2.6獲取在線幫助MATLAB提供幫助信息有兩類簡單純文本幫助信息helplookfor(條件比較寬松)例:inverse窗口式綜合幫助信息(文字、公式、圖形)dochelpwin10/10/202332ApplicationofMatlabLanguage第32頁【功能演示-1】求方程所有根。p=[2,0,-3,71,-9,13];%建立多項(xiàng)式系數(shù)向量x=roots(p);求根x=-3.49141.6863+2.6947i1.6863-2.6947i0.0594+0.4251i0.0594-0.4251i10/10/202333ApplicationofMatlabLanguage第33頁【功能演示-2】求解線性方程組a=[2,3,-1;8,2,3;45,3,9];%建立系數(shù)矩陣ab=[2;4;23];%建立列向量bx=inv(a)*bx=0.55310.2051-0.278410/10/202334ApplicationofMatlabLanguage第34頁符號計算symsxyz

%建立符號變量[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)x=151/273y=8/39z=-76/27310/10/202335ApplicationofMatlabLanguage第35頁【功能演示-3】求解定積分

求解I=quad('x.*log(1+x)',0,1)ans=0.250或symsxint(x*log(1+x),0,1)ans=1/410/10/202336ApplicationofMatlabLanguage第36頁【功能演示-4】多項(xiàng)式曲線擬合考慮如下x-y一組試驗(yàn)數(shù)據(jù):x=[1,2,3,4,5,6,7,8,9,10]y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]注:一次多項(xiàng)式擬合:p1=polyfit(x,y,1)三次多項(xiàng)式擬合:p3=polyfit(x,y,3)plot原始數(shù)據(jù)、一次擬合曲線和三次擬合曲線x2=1:0.1:10;y1=polyval(p1,x2)y3=polyval(p3,x2)plot(x,y,’*’,x2,y1,‘:’,x2,y3)10/10/202337ApplicationofMatlabLanguage第37頁擬合曲線圖由圖可見,三次擬合成果較好。10/10/202338ApplicationofMatlabLanguage第38頁2.3數(shù)值表達(dá)、變量及體現(xiàn)式數(shù)值記述

Matlab數(shù)只采取習(xí)慣十進(jìn)制表達(dá),能夠帶小數(shù)點(diǎn)和負(fù)號;其缺省數(shù)據(jù)類型為雙精度浮點(diǎn)型(double)。例如:3-100.0011.3e101.256e-6變量命令規(guī)則變量名、函數(shù)名對字母大小寫是敏感。如myVar與myvar表達(dá)兩個不一樣變量。變量名第一種字母必須是英文字母。變量名能夠包括英文字母、下劃線和數(shù)字。變量名不能包括空格、標(biāo)點(diǎn)。變量名最多可包括63個字符(6.5及后來版本)。10/10/202339ApplicationofMatlabLanguage第39頁2.3數(shù)值表達(dá)、變量及體現(xiàn)式(續(xù))Matlab預(yù)定義變量變量名意義ans近來計算成果變量名epsMATLAB定義正極小值=2.2204e-16pi圓周率πinf∞值,無限大i或j虛數(shù)單元,sqrt(-1)NaN非數(shù),0/0、∞/∞〖說明〗每當(dāng)MATLAB啟動完成,這些變量就被產(chǎn)生。MATLAB中,被0除不會引發(fā)程序中斷,給出報警同步用inf或NaN給出成果。顧客只能臨時覆蓋這些預(yù)定義變量值,Clear或重啟MATLAB可恢復(fù)其值。10/10/202340ApplicationofMatlabLanguage第40頁2.3數(shù)值表達(dá)、變量及體現(xiàn)式

(續(xù))運(yùn)算符和體現(xiàn)式運(yùn)算數(shù)學(xué)體現(xiàn)式MATLAB運(yùn)算符MATLAB體現(xiàn)式加a+b+a+b減a-b-a-b乘axb*a*b除a/b或a\b/或\a/b或a\b冪^a^b〖說明〗Matlab用“\”和”/”分別表達(dá)“左除”和“右除”。對標(biāo)量而言,二者沒有區(qū)分。對矩陣產(chǎn)生不一樣影響。MATLAB體現(xiàn)式書寫規(guī)則與“手寫方式”幾乎完全相同。體現(xiàn)式按與常規(guī)相同優(yōu)先級自左至右執(zhí)行運(yùn)算。優(yōu)先級:指數(shù)運(yùn)算級別最高,乘除次之,加減最低。括號變化運(yùn)算次序。10/10/202341ApplicationofMatlabLanguage第41頁2.3數(shù)值表達(dá)、變量及體現(xiàn)式

(續(xù))復(fù)數(shù)及其運(yùn)算MATLAB中復(fù)數(shù)體現(xiàn):z=a+bi,其中a、b為實(shí)數(shù)。MATLAB把復(fù)數(shù)作為一種整體,象計算實(shí)數(shù)同樣計算復(fù)數(shù)?!纠?.3-1】復(fù)數(shù)z1=3+4i,z2=1+2i,z3=計算>>z1=3+4*i,z2=1+2*i,z3=2*exp(i*pi/6),z=z1*z2/z3>>z_real=real(z),z_image=imag(z),>>z_angle=angle(z),z_length=abs(z),10/10/202342ApplicationofMatlabLanguage第42頁總結(jié)對MATALB整個軟件產(chǎn)品進(jìn)行了概述歷史發(fā)展軟件產(chǎn)品家族體系組成M語言特點(diǎn)MATLAB入門知識MATLAB桌面MATLAB數(shù)值記述和數(shù)據(jù)顯示格式變量及其命名規(guī)則運(yùn)算符及體現(xiàn)式常用MATLAB命令在線幫助使用10/10/202343ApplicationofMatlabLanguage第43頁思考題簡述MATALB軟件功能及特點(diǎn)。簡述MATALB變量命名規(guī)則。熟悉課件中例子。10/10/202344ApplicationofMatlabLanguage第44頁Matlab語言及其應(yīng)用第2講10/10/202345第45頁工作空間Matlab系統(tǒng)界面10/10/202346ApplicationofMatlabLanguage第46頁Matlab數(shù)據(jù)及其運(yùn)算

Matlab數(shù)據(jù)類型非常豐富,除數(shù)值型、字符型等基本數(shù)據(jù)類型外,尚有構(gòu)造體、單元等更為復(fù)雜數(shù)據(jù)類型。多種數(shù)據(jù)類型都以矩陣形式存在,矩陣是Matlab最基本數(shù)據(jù)對象,并且矩陣運(yùn)算是定義在復(fù)數(shù)域上。10/10/202347第47頁Matlab矩陣(數(shù)組)表達(dá)數(shù)組概念一維數(shù)組變量創(chuàng)建二維數(shù)組變量創(chuàng)建數(shù)組元素標(biāo)識與尋訪數(shù)組運(yùn)算多維數(shù)組10/10/202348ApplicationofMatlabLanguage第48頁2.2.1.數(shù)組(array)概念數(shù)組定義:按行(row)和列(column)次序排列實(shí)數(shù)或復(fù)數(shù)有序集,被稱為數(shù)組。數(shù)組中任何一種數(shù)都被稱為這個數(shù)組元素,由其所在行和列標(biāo)識,這個標(biāo)識也稱為數(shù)組元素下標(biāo)或索引。Matlab將標(biāo)量視為1×1數(shù)組。對m行、n列2維數(shù)組a:計為m×n數(shù)組a;*行標(biāo)識、列標(biāo)識均從1開始;行標(biāo)識從上到下遞增;列標(biāo)識從左到右遞增。12345222232425332333435442434445a(3,4)=34rowisfirsta=10/10/202349ApplicationofMatlabLanguage第49頁數(shù)組分類一維數(shù)組,也稱為向量(vector)。行向量(rowvector)、列向量(columnvector)。二維數(shù)組(矩陣matrix)。多維數(shù)組。有效矩陣:每行元素個數(shù)必須相同,每列元素個數(shù)也必須相同。2.2.1.數(shù)組(array)概念10/10/202350ApplicationofMatlabLanguage第50頁2.2.1、數(shù)組(array)概念(續(xù))行向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=210/10/202351ApplicationofMatlabLanguage第51頁2.2.2、創(chuàng)建一維數(shù)組變量第一種辦法:使用方括號“[]”操作符【例2-1】創(chuàng)建數(shù)組(行向量)a=[13pi3+5i]>>a=[13pi3+5*i]%ora=[1,3,pi,3+5*i]

a=1.00003.00003.14163.0000+5.0000i所有向量元素必須在操作符“[]”之內(nèi);向量元素間用空格或英文逗點(diǎn)“,”分開。第二種辦法:使用冒號“:”操作符【例2-2】創(chuàng)建以1~10次序排列整數(shù)為元素行向量b。>>b=1:10b=1234567891010/10/202352ApplicationofMatlabLanguage第52頁2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))【例2-3】鍵入并執(zhí)行c=1:2:10和d=1:2:9>>c=1:2:10c=13579>>d=1:2:9d=13579利用冒號“:”操作符創(chuàng)建行向量基本語法格式:x=Start:Increment:EndStart表達(dá)新向量x第一種元素;新向量x最后一種元素不能大于End;Increment可正可負(fù),若負(fù),則必須Start>End;若正,則必須Start<End,不然創(chuàng)建為空向量。若Increment=1,則可簡寫為:x=Start:End。10/10/202353ApplicationofMatlabLanguage第53頁2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))第三種辦法:利用函數(shù)linspace函數(shù)linspace基本語法x=linspace(x1,x2,n)該函數(shù)生成一種由n個元素組成行向量;x1為其第一種元素;x2為其最后一種元素;x1、x2之間元素間隔=(x2-x1)/(n-1)。假如忽視參數(shù)n,則系統(tǒng)默認(rèn)生成100個元素行向量?!纠?-4】鍵入并執(zhí)行x=linspace(1,2,5)x=1.00001.25001.50001.75002.000010/10/202354ApplicationofMatlabLanguage第54頁2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))列向量創(chuàng)建使用方括號“[]”操作符;用分號“;”分割行?!纠?-5】鍵入并執(zhí)行x=[1;2;3]X=123使用冒號操作符【例2-6】鍵入并執(zhí)行x=(1:3)’%“’”表達(dá)矩陣轉(zhuǎn)置10/10/202355ApplicationofMatlabLanguage第55頁2.2.2、創(chuàng)建一維數(shù)組變量

(續(xù))創(chuàng)建數(shù)組變量一般辦法創(chuàng)建變量賦值語句一般格式var=expressionvar為變量名expression為MATLAB合法體現(xiàn)式能夠是單獨(dú)常數(shù)值或數(shù)值數(shù)組;也能夠由常數(shù)值、其他變量(部分或所有)、數(shù)值數(shù)組和運(yùn)算符(+、-等)組成。【例2-7】鍵入并執(zhí)行a=[01+6];b=[a67];c=[6a7];d=[6a7a];10/10/202356ApplicationofMatlabLanguage第56頁2.2.2、創(chuàng)建一維數(shù)組變量

(續(xù))一旦被創(chuàng)建,變量就被存放在工作空間,能夠通過“Workspace”窗口或在“CommandWindow”執(zhí)行“whos”命令察看。操作一:使用“Workspace”窗口察看變量操作二:使用“whos”命令察看變量10/10/202357ApplicationofMatlabLanguage第57頁2.2.3、創(chuàng)建二維數(shù)組變量第一種辦法:使用方括號“[]”操作符使用規(guī)則數(shù)組元素必須在“[]”內(nèi)鍵入;行與行之間須用分號“;”間隔,也能夠在分行處用回車鍵間隔;行內(nèi)元素用空格或逗號“,”間隔?!纠?-1】鍵入并執(zhí)行a2=[123;456;789]a2=123456789【例3-2】鍵入并執(zhí)行a2=[1:3;4:6;7:9]%成果同上10/10/202358ApplicationofMatlabLanguage第58頁2.2.3、創(chuàng)建二維數(shù)組變量(續(xù))【例3-3】由向量組成二維數(shù)組。>>a=[123];b=[234];>>c=[a;b];>>c1=[ab];第二種辦法:函數(shù)辦法函數(shù)ones(生成全1矩陣)、zeros(生成全0矩陣)reshape“helpelmat”取得基本矩陣生成和操作函數(shù)列表【例3-4】創(chuàng)建全13x3數(shù)組。>>ones(3)【例3-5】創(chuàng)建全13x4數(shù)組。>>ones(3,4)10/10/202359ApplicationofMatlabLanguage第59頁2.2.3、創(chuàng)建二維數(shù)組變量(續(xù))【例3-5】reshape使用演示>>a=-4:4a=-4-3-2-101234>>b=reshape(a,3,3)b=-4-12-303-214數(shù)組元素排列次序,從上到下按列排列,先排第一列,然后第二列,…要求數(shù)組元素總數(shù)不變。10/10/202360ApplicationofMatlabLanguage第60頁4、數(shù)組元素標(biāo)識與尋訪數(shù)組元素標(biāo)識“全下標(biāo)(index)”標(biāo)識典型數(shù)學(xué)教科書采取“全下標(biāo)”標(biāo)識法:每一維對應(yīng)一種下標(biāo)。如對于二維數(shù)組,用“行下標(biāo)和列下標(biāo)”標(biāo)識數(shù)組元素,a(2,3)就表達(dá)二維數(shù)組a“第2行第3列”元素。對于一維數(shù)組,用一種下標(biāo)即可,b(2)表達(dá)一維數(shù)組b第2個元素,無論b是行向量還是列向量?!皢蜗聵?biāo)”(linearindex)標(biāo)識所謂“單下標(biāo)”標(biāo)識就是用一種下標(biāo)來表白元素在數(shù)組位置。對于二維數(shù)組,“單下標(biāo)”編號:構(gòu)想把二維數(shù)組所有列,按先后次序首尾相接排成“一維長列”,然后自上往下對元素位置執(zhí)行編號。兩種“下標(biāo)”標(biāo)識變換:sub2ind、ind2sub10/10/202361ApplicationofMatlabLanguage第61頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))【例4-1】單下標(biāo)使用>>a=zeros(2,5);>>a(:)=-4:5a=-4-2024-3-1135注意數(shù)組排列次序。10/10/202362ApplicationofMatlabLanguage第62頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))元素與子數(shù)組尋訪與賦值【例4-3】一維數(shù)組元素與子數(shù)組尋訪與賦值>>a=linspace(1,10,5)a=1.00003.25005.50007.750010.0000>>a(3)%尋訪a第3個元素ans=5.5000>>a([125])%尋訪a第1、2、5個元素組成子數(shù)組ans=1.00003.250010.000010/10/202363ApplicationofMatlabLanguage第63頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))>>a(1:3)%尋訪前3個元素組成子數(shù)組ans=1.00003.25005.5000>>a(3:-1:1)%由前3個元素倒序組成子數(shù)組ans=5.50003.25001.0000>>a(3:end)ans=5.50007.750010.0000>>a(3:end-1)ans=5.50007.7500%第3個及其后所有元素組成子數(shù)組函數(shù)end作為參數(shù)使用,返回最后一種元素下標(biāo)10/10/202364ApplicationofMatlabLanguage第64頁>>a([12355321])ans=1.00003.25005.500010.000010.00005.50003.25001.0000數(shù)組元素能夠被任意反復(fù)訪問,組成長度大于原數(shù)組新數(shù)組。>>a(6)???Indexexceedsmatrixdimensions.下標(biāo)值超出了數(shù)組維數(shù),造成錯誤>>a(2.1)???Subscriptindicesmusteitherberealpositiveintegersorlogicals.下標(biāo)值只能取正整數(shù)或邏輯值4、數(shù)組元素標(biāo)識與尋訪(續(xù))10/10/202365ApplicationofMatlabLanguage第65頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))>>a(3)=0%修改數(shù)組a第3元素值為0a=1.00003.250007.750010.0000>>a([25])=[11]a=1.00001.000007.75001.0000能夠修改指定數(shù)組元素值一次能夠修改多種數(shù)組元素值要修改數(shù)組元素個數(shù)應(yīng)與送入數(shù)組元素個數(shù)相同10/10/202366ApplicationofMatlabLanguage第66頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))【例4-3】二維數(shù)組元素與子數(shù)組尋訪與賦值>>a_2=zeros(2,4)%創(chuàng)建2x4全0數(shù)組a_2=00000000>>a_2(:)=1:8a_2=13572468>>a_2([258])%單下標(biāo)方式尋訪多種元素ans=258注意元素排列次序10/10/202367ApplicationofMatlabLanguage第67頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))>>a_2([258])=[102030]a_2gt;>a_2(:,[23])=ones(2)%雙下標(biāo)方式尋訪并修改a_2=1117101130二維數(shù)組能夠“單下標(biāo)”方式或“全下標(biāo)”方式訪問、賦值;“單下標(biāo)”方式賦值時,等號兩邊包括元素個數(shù)必須相等;“全下標(biāo)”方式賦值時,等號右邊數(shù)組大小必須等于原數(shù)組中包括元素組成子數(shù)組大小。10/10/202368ApplicationofMatlabLanguage第68頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))【例4-4】

size、length函數(shù)>>a=ones(4,6)*6>>m=size(a)>>len=length(a)>>b=1:5;>>length(b)>>c=b’>>length(c)

size函數(shù)返回變量大小,即變量數(shù)組行列數(shù)length函數(shù)返回變量數(shù)組最大維數(shù)10/10/202369ApplicationofMatlabLanguage第69頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))雙下標(biāo)到單下標(biāo)轉(zhuǎn)換【例4-5】

sub2ind函數(shù)-雙下標(biāo)轉(zhuǎn)換為單下標(biāo)>>A=[172418;222714;461320];>>A(:,:,2)=A-10>>A(2,1,2)>>sub2ind(size(A),2,1,2)>>A(14)10/10/202370ApplicationofMatlabLanguage第70頁4、數(shù)組元素標(biāo)識與尋訪(續(xù))單下標(biāo)到雙下標(biāo)轉(zhuǎn)換【例4-6】

ind2sub函數(shù)-雙下標(biāo)轉(zhuǎn)換為單下標(biāo)>>b=zeros(3);>>b(:)=1:9>>IND=[3456]>>[I,J]=ind2sub(size(b),IND)10/10/202371ApplicationofMatlabLanguage第71頁5、多維數(shù)組多維數(shù)組定義

在MATLAB數(shù)據(jù)類型中,向量可視為一維數(shù)組,矩陣可視為二維數(shù)組,對于維數(shù)(Dimensions)超出2

數(shù)組均可視為「多維數(shù)組」(MultidimesionalArrays,簡稱N-DArrays)。10/10/202372ApplicationofMatlabLanguage第72頁5、多維數(shù)組(續(xù))將兩個二維(平面)數(shù)組疊在一起,就構(gòu)成三維數(shù)組,第三維稱為「頁」(Page),如下列圖所示:(3,4)

(3,1) (3,2)(3,3)(2,4)(2,3)(2,2)(2,1)(1,4)(1,3)(1,2)(1,1)(1,1)(1,2)(1,3)(1,4)(2,1)(2,2)(2,3)(2,4)(3,1)(3,2)(3,3)(3,4)頁列頁行10/10/202373ApplicationofMatlabLanguage第73頁5、多維數(shù)組(續(xù))三維數(shù)組,可對應(yīng)至一種X-Y-Z三維立體坐標(biāo),如下列圖所示:Z(頁)Y(列)X(行)10/10/202374ApplicationofMatlabLanguage第74頁5、多維數(shù)組(續(xù))三維數(shù)組元素尋址:可以(行、列、頁)來確定。以維數(shù)為3×4×2三維數(shù)組為例,其尋址方式如下列圖所示:數(shù)組

A是三維數(shù)組,其中A(:,:,1)代表第一頁二維數(shù)組,A(:,:,2)代表第二頁二維數(shù)組。10/10/202375ApplicationofMatlabLanguage第75頁5、多維數(shù)組(續(xù))多維數(shù)組建立建立一種簡單多維數(shù)組,可直接由MATLAB命令視窗內(nèi)輸入(使用“[]”操作符)例:由兩個相同大小二維數(shù)組創(chuàng)建三維數(shù)組A(:,:,1)=[1025;4187;3263];A(:,:,2)=[3541;2621;4230]

A(:,:,1)=102541873263A(:,:,2)=354126214230

10/10/202376ApplicationofMatlabLanguage第76頁5、多維數(shù)組(續(xù))執(zhí)行命令:whosA,得到如下成果:

NameSizeBytesClassA3x4x2192doublearrayGrandtotalis24elementsusing192bytes10/10/202377ApplicationofMatlabLanguage第77頁6、數(shù)組算術(shù)運(yùn)算MATLAB數(shù)組支持線性代數(shù)中所有矩陣運(yùn)算。建立特有數(shù)組運(yùn)算符,如:“.*”、“./”等。

MATLAB數(shù)組運(yùn)算符列表運(yùn)算 運(yùn)算符 含義說明

加 +對應(yīng)元素相加減 - 對應(yīng)元素相減乘 * 矩陣乘法點(diǎn)乘 .* 對應(yīng)元素相乘冪 ^ 矩陣冪運(yùn)算點(diǎn)冪 .^ 對應(yīng)元素進(jìn)行冪運(yùn)算左除或右除 \或/ 矩陣左除或右除左點(diǎn)除或右點(diǎn)除.\或./ A元素被B對應(yīng)元素除10/10/202378ApplicationofMatlabLanguage第78頁6、算術(shù)運(yùn)算(續(xù))

【例5-1】數(shù)組加減法>>a=zeros(2,3);>>a(:)=1:6;>>b=a+2.5b=3.50005.50007.50004.50006.50008.5000>>c=b-ac=2.50002.50002.50002.50002.50002.500010/10/202379ApplicationofMatlabLanguage第79頁6、算術(shù)運(yùn)算(續(xù))【例5-2】點(diǎn)冪“.^”舉例>>a=1:6a=123456>>b=reshape(a,2,3)b=135246>>a=a.^2a=149162536>>b=b.^2b=19254163610/10/202380ApplicationofMatlabLanguage第80頁7、關(guān)系運(yùn)算

Matlab提供了6種關(guān)系運(yùn)算符:<、>、<=、>=、==、~=(不等于)關(guān)系運(yùn)算符運(yùn)算法則:1、當(dāng)兩個標(biāo)量進(jìn)行比較時,直接比較兩數(shù)大小。若關(guān)系成立,成果為1,不然為0。2、當(dāng)兩個維數(shù)相等矩陣進(jìn)行比較時,其對應(yīng)位置元素按標(biāo)量關(guān)系進(jìn)行比較,并給出成果,形成一種維數(shù)與本來相同0、1矩陣。3、當(dāng)一種標(biāo)量與一種矩陣比較時,該標(biāo)量與矩陣各元素進(jìn)行比較,成果形成一種與矩陣維數(shù)相等0、1矩陣。10/10/202381ApplicationofMatlabLanguage第81頁7、關(guān)系運(yùn)算(續(xù))【例】建立5階方陣A,判斷其元素能否被3整除。A=[24,35,13,22,63;23,39,47,80,80;...90,41,80,29,10;45,57,85,62,21;37,19,31,88,76]A=2435132263233947808090418029105785622119318876P=rem(A,3)==0%被3除,求余P=100010100010000110010000010/10/202382ApplicationofMatlabLanguage第82頁8、邏輯運(yùn)算

Matlab提供了3種邏輯運(yùn)算符:&(與)、|(或)、~(非)邏輯運(yùn)算符運(yùn)算法則:1、在邏輯運(yùn)算中,確認(rèn)非零元素為真(1),零元素為假(0)。

2、當(dāng)兩個維數(shù)相等矩陣進(jìn)行比較時,其對應(yīng)位置元素按標(biāo)量關(guān)系進(jìn)行比較,并給出成果,形

溫馨提示

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

最新文檔

評論

0/150

提交評論