《MATLAB語言及其應(yīng)用》全套課件(清華大學(xué))

上傳人:雅*** 文檔編號(hào):20211610 上傳時(shí)間:2021-02-25 格式:PPT 頁數(shù):340 大?。?.65MB
收藏 版權(quán)申訴 舉報(bào) 下載
《MATLAB語言及其應(yīng)用》全套課件(清華大學(xué))_第1頁
第1頁 / 共340頁
《MATLAB語言及其應(yīng)用》全套課件(清華大學(xué))_第2頁
第2頁 / 共340頁
《MATLAB語言及其應(yīng)用》全套課件(清華大學(xué))_第3頁
第3頁 / 共340頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《MATLAB語言及其應(yīng)用》全套課件(清華大學(xué))》由會(huì)員分享,可在線閱讀,更多相關(guān)《《MATLAB語言及其應(yīng)用》全套課件(清華大學(xué))(340頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、MATLAB 語言及其應(yīng)用,授課教師:李欣 單位:清華大學(xué),,2,課程的作用 課程的目的 課程的特點(diǎn) 課程安排,3,課程的作用,在歐美各高等學(xué)校,Matlab成為線性代數(shù)、自動(dòng)控制理論、數(shù)字信號(hào)處理、時(shí)間序列分析、動(dòng)態(tài)系統(tǒng)仿真、圖像處理等諸多課程的基本教學(xué)工具,成為本科生、碩士生和博士生的必須掌握的基本技能。 在設(shè)計(jì)研究單位和工業(yè)部門,Matlab已被廣泛地用于研究和解決各種具體的工程問題。 可以預(yù)見,Matlab將在我國科學(xué)研究和工程應(yīng)用中發(fā)揮越來越大的作用。,4,講授MATLAB語言基礎(chǔ)入門知識(shí),介紹MATLAB產(chǎn)品的體系、MATLAB桌面工具的使用方法,重點(diǎn)介紹MATLAB的數(shù)據(jù)可視化、

2、數(shù)值計(jì)算的基本步驟以及如何使用MATLAB語言編寫整潔、高效、規(guī)范的程序。并涉及到一些具體的專業(yè)應(yīng)用工具箱(如:信號(hào)處理工具箱、圖像處理工具箱等)。 通過本課程的學(xué)習(xí),了解、熟悉、掌握 MATLAB的基本編程方法,并具有初步的利用計(jì)算機(jī)處理、解決實(shí)際問題的能力,為進(jìn)一步學(xué)習(xí)后續(xù)的專業(yè)課程做好準(zhǔn)備。,本課程的目的( Objectives of This Course ),本課程的特點(diǎn)( Features of This Course ) 交叉性課程,是計(jì)算機(jī)技術(shù)、數(shù)學(xué)理論知識(shí)以及諸多工程理論知識(shí)的綜合。 實(shí)踐性課程。 內(nèi)容多,課時(shí)少,要求同學(xué)上課認(rèn)真聽講,要充分利用上機(jī)實(shí)踐消化、理解、

3、 掌握課上講解內(nèi)容。,5,課程安排,課堂教學(xué):共24學(xué)時(shí);(1-12周) 上機(jī)試驗(yàn):共24學(xué)時(shí)。 (2-13周,周二7-8節(jié),九實(shí)401、402、403) 學(xué)習(xí)成績(jī): 1)上機(jī)實(shí)驗(yàn)成績(jī)占30%; 2)考勤 10% ; 3) 考試60% (隨堂考試)。 主要參考書 精通MATLAB 6.5張志涌 等編著,北航出版,2003年 高等應(yīng)用數(shù)學(xué)問題的Matlab求解 薛定宇等著,清華大學(xué)出版社,2004年 Matlab程序設(shè)計(jì)與應(yīng)用 劉衛(wèi)國主編,高等教育出版社,6,授課宗旨,講授MATLAB的通用功能。 寓教于例,由淺入深。 關(guān)于科學(xué)計(jì)算,著重強(qiáng)調(diào)理論概念、算法和實(shí)際計(jì)算三者之間的關(guān)系。,

4、7,第一講 Matlab概述,前言 Matlab軟件概述 Matlab的桌面環(huán)境及入門知識(shí),8,1 Matlab概述,內(nèi)容 Matlab發(fā)展歷史 Matlab產(chǎn)品家族(Matlab family of products)體系 Matlab 語言的特點(diǎn)。 目的 全面了解 Matlab軟件包 激發(fā)對(duì)Matlab軟件的學(xué)習(xí)興趣。,9,1.1 MATLAB的歷史及影響,70年代中期,Cleve Moler博土及其同事在美國國家基金會(huì)的幫助下,開發(fā)了LINPACK和EISPACK的FORTRAN語言子程序庫,這兩個(gè)程序庫代表了當(dāng)時(shí)矩陣運(yùn)算的最高水平。 到了70年代后期,身為美國新墨西哥州大學(xué)計(jì)算機(jī)系系主

5、任的CIeve Moler,在給學(xué)生上線性代數(shù)課時(shí),為了讓學(xué)生能使用這兩個(gè)子程序庫,同時(shí)又不用在編程上花費(fèi)過多的時(shí)間,開始著手用FORTRAN語言為學(xué)生編寫使用LINPACK和EISPACK的接口程序,他將這個(gè)程序取名為MATLAB,其名稱是由MATrix和 LABoratory(矩陣實(shí)驗(yàn)室)兩個(gè)單詞的前三個(gè)字母所合成。 在1978年,Malab就面世了。這個(gè)程序獲得了很大的成功,受到了學(xué)生的廣泛歡迎。在以后的幾年里,Matlab在多所大學(xué)里作為教學(xué)輔助軟件使用,并作為面向大眾的免費(fèi)軟件廣為流傳。,Cleve Moler,10,將MATLAB商品化的不是Cleve Moler,而是一個(gè)名叫Ja

6、ck Little的人。當(dāng)免費(fèi)的MATLAB軟件到Stanford大學(xué),Jack Little正在該校主修控制,便接觸到了當(dāng)時(shí)MATLAB,直覺告訴他,這是一個(gè)具有巨大發(fā)展?jié)摿Φ能浖?。因此他在畢業(yè)沒多久,就開始用C語言重新編寫了MATLAB的核心。在Moler的協(xié)助下,于1984年成立MathWorks公司,首次推出MATLAB商用版。在其商用版推出的初期,MATLAB就以其優(yōu)秀的品質(zhì)(高效的數(shù)據(jù)計(jì)算能力和開放的體系結(jié)構(gòu))占據(jù)了大部分?jǐn)?shù)學(xué)計(jì)算軟件的市場(chǎng),原來應(yīng)用于控制領(lǐng)域里的一些封閉式數(shù)學(xué)計(jì)算軟件包(如英國的UMIST、瑞典的LUND和SIMNON、德國的KEDDC)就紛紛被淘汰或在MATLA

7、B上重建。,Jack Little,11,Cleve Moler至今仍是該公司的首席科學(xué)家,他以60多歲的高齡,還常常親自進(jìn)行撰寫程序的工作,非常令人佩服。如果你有數(shù)值運(yùn)算方面的高水平問題,寄到 MathWorks 后,大部份還是會(huì)由 Cleve Moler親自回答。在1994年,Pentium芯片曾發(fā)生Fdiv的bug, 當(dāng)時(shí)Cleve Moler是第一個(gè)以軟件方式解決此 bug的人,曾一時(shí)膾炙人口。,在公司初創(chuàng)的五年,Jack Little非常辛苦,常常身兼數(shù)職(董事長(zhǎng)、總經(jīng)理、推銷、程序開發(fā)等),但公司一直穩(wěn)定發(fā)展,從當(dāng)初的一人公司,到1993年的200人,到2000年的 500余人,到

8、2005年公司員工達(dá)到了1300人,不但打敗其他競(jìng)爭(zhēng)軟件,而且前景一片欣欣向榮。根據(jù)Jack Little個(gè)人說法,MATLAB早期成功的兩大因素是:選用了C語言及選定PC為主要平臺(tái),這似乎和微軟的成功有相互呼應(yīng)之妙。,MathWorks公司,目前仍然是私人企業(yè),并未上市,這和Jack Little個(gè)人理念有關(guān),他認(rèn)為MATLAB的設(shè)計(jì)方向應(yīng)該一直是以顧客的需求與軟件的完整性為首要目標(biāo),而不是以盈利為主要目的,因此MATLAB一直是在穩(wěn)定中求進(jìn)步,而不會(huì)因?yàn)樯鲜卸馐芄蓶|左右其發(fā)展方向。這也是為什么MATLAB新版本總是姍姍來遲的原因,因?yàn)樗麄儾粫?huì)因?yàn)槭袌?chǎng)的需求而推出不成熟的產(chǎn)品。此外,由于J

9、ack Little保守的個(gè)性,也使得MathWorks不曾跨足MATLAB/Simulink以外的行業(yè),當(dāng)前商場(chǎng)上紛紛擾擾的并購或分家,MathWorks完全是絕緣體。,12,1992年,支持Windows 3.x的MATLAB 4.0版本推出,增加了Simulink,Control,Neural Network,Signal Processing等專用工具箱。,1993年11月,MathWorks公司推出了Matlab 4.1,其中主要增加了符號(hào)運(yùn)算功能。當(dāng)升級(jí)至Matlab 4.2c,這一功能在用戶中得到廣泛應(yīng)用。,,1997年,Matlab 5.0版本問世了,實(shí)現(xiàn)了真正的32位運(yùn)算,加

10、快數(shù)值計(jì)算,圖形表現(xiàn)有效。,2001年初,MathWorks公司推出了Matlab 6.0(R12)。,2002年7月,推出了Matlab 6.5(R13),在這一版本中Simulink升級(jí)到了5.0,性能有了很大提高,另一大特點(diǎn)是推出了JIT程序加速器,Matlab的計(jì)算速度有了明顯的提高。,2005年9月,推出了MAILAB 7.1(Release14 SP3),在這一版本中Simulink升級(jí)到了6.3,軟件性能有了新的提高,用戶界面更加友好。值得說明的是,Matlab V7.1版采用了更先進(jìn)的數(shù)學(xué)程序庫,即“LAPACK”和“BLAS”。 目前,Matlab軟件支持多種系統(tǒng)平臺(tái),如常

11、見的WindowsNT/XP、UNIX、Linux等。,Matlab版本的發(fā)展,13,MATLAB就是這樣經(jīng)過了近30年的專門打造、20多年的千錘百煉,它以高性能的數(shù)組運(yùn)算(包括矩陣運(yùn)算)為基礎(chǔ),不僅實(shí)現(xiàn)了大多數(shù)數(shù)學(xué)算法的高效運(yùn)行函數(shù)和數(shù)據(jù)可視化,而且提供了非常高效的計(jì)算機(jī)高級(jí)編程語言,在用戶可參與的情況下,各種專業(yè)領(lǐng)域的工具箱不斷開發(fā)和完善,MATLAB取得了巨大的成功,已廣泛應(yīng)用于科學(xué)研究、工程應(yīng)用,用于數(shù)值計(jì)算分析、系統(tǒng)建模與仿真。 早在20世紀(jì)90年代初,歐美等發(fā)達(dá)國家的大學(xué)就將MATLAB列為一種必須掌握的編程語言。近幾年來,國內(nèi)的很多大學(xué)也將MATLAB列為了本科生必修課程。

12、與Maple、Mathematica數(shù)學(xué)計(jì)算軟件相比,MATLAB以數(shù)值計(jì)算見長(zhǎng),而Maple等以符號(hào)運(yùn)算見長(zhǎng),能給出解析解和任意精度解,而處理大量數(shù)據(jù)的能力遠(yuǎn)不如MATLAB。 MATLAB軟件功能之強(qiáng)大、應(yīng)用之廣泛,已成為為21世紀(jì)最為重要的科學(xué)計(jì)算語言??梢妼W(xué)習(xí)掌握這一工具的重要性。,14,MATLAB產(chǎn)品由若干模塊組成,不同的模塊完成不同的功能,其中有:,實(shí)際上MATLAB本身就是一個(gè)極其豐富的資源庫,那么應(yīng)該從哪一部分開始著手、學(xué)習(xí)使用MATLAB呢?這就有必要了解這一軟件產(chǎn)品的體系結(jié)構(gòu) 。,MATLAB Compiler這種編譯器可以將MATLAB程序文件編譯生成標(biāo)準(zhǔn)的C/C++

13、語言文件,而生成的標(biāo)準(zhǔn)的C/C++文件可以被任何一種C/C++編譯器編譯生成函數(shù)庫或可執(zhí)行文件,以提高程序的運(yùn)行效率。,1.2 MATLAB產(chǎn)品的體系結(jié)構(gòu),MATLAB,MATLAB Toolboxes,MATLAB Compiler,Simulink,Simulink Blocksets,Real-Time Workshop (RTW),Stateflow,Stateflow Coder,由這些模塊產(chǎn)品之間的關(guān)系可以圖1.1表示。,圖1.1 MATLAB產(chǎn)品體系結(jié)構(gòu),圍繞著MATLAB這個(gè)計(jì)算核心,形成了諸多針對(duì)不同應(yīng)用領(lǐng)域的算法程序包,被稱為專用工具箱(Toolbox),這些工具箱的列表以

14、及每個(gè)工具箱的使用詳見MATLAB在線幫助文檔。MATLAB本身所提供的工具箱大概有40多個(gè),另外還有其他公司或研究單位開發(fā)提供的工具箱,這些工具箱的總數(shù)已有100多個(gè),而且新的工具箱還在不斷增加。如果你有特別的應(yīng)用領(lǐng)域,可以首先到網(wǎng)上查找是否已有相關(guān)的工具箱,很可能已有人將你要做的應(yīng)用程序作成工具箱了。,Simulink是窗口圖形方式的、專門用于連續(xù)時(shí)間或離散時(shí)間的動(dòng)態(tài)系統(tǒng)建模、分析和仿真的核心。,Real-Time Workshop是一種實(shí)時(shí)代碼生成工具,它能夠根據(jù)Simulink模型生成程序源代碼,并打包、編譯所生成的源代碼生成實(shí)時(shí)應(yīng)用程序。,從現(xiàn)有的Simulink 和Stateflo

15、w自動(dòng)生成C語言程序代碼的功能、定點(diǎn)運(yùn)算模塊集(Fixed-point Blockset)與C語言程序代碼到VHDL(Very High Speed Integrated Circuit Hardware Description Language,一種標(biāo)準(zhǔn)的硬件電路設(shè)計(jì)語言 )的自動(dòng)轉(zhuǎn)換功能,可以看出,高級(jí)的系統(tǒng)仿真或低級(jí)的芯片算法設(shè)計(jì),都可用MATLAB、Simulink、Stateflow及相關(guān)的工具箱來完成。,Stateflow是基于有限狀態(tài)機(jī)理論針對(duì)復(fù)雜的事件驅(qū)動(dòng)系統(tǒng)進(jìn)行建模、仿真的工具。,Stateflow Coder是基于Stateflow狀態(tài)圖生成高效、優(yōu)化的程序代碼。,圍繞著S

16、imulink仿真核心所開發(fā)的應(yīng)用程序包,稱為模塊集(Blocksets),MATLAB產(chǎn)品提供許多專用模塊集,如Communication Blockset、DSP Blockset、SimPowerSystem Blockset、Signal Processing Blockset等,詳見MATLAB在線幫助文檔。,MATLAB是MATLAB產(chǎn)品家族的計(jì)算核心與基礎(chǔ),是集高性能數(shù)值計(jì)算與數(shù)據(jù)可視化于一體的高效編程語言。,15,1.3 MATLAB編程語言的特點(diǎn),語法規(guī)則簡(jiǎn)單。尤其內(nèi)定的編程規(guī)則,與其他編程語言(如C、Fortran等)相比更接近于常規(guī)數(shù)學(xué)表示。對(duì)于數(shù)組變量的使用,不需類型聲

17、明,無需事先申請(qǐng)內(nèi)存空間。,MATLAB語言主要有以下幾個(gè)特點(diǎn):,MATLAB基本的語言環(huán)境提供了數(shù)以千計(jì)的計(jì)算函數(shù),極大的提高了用戶的編程效率。如,一個(gè)fft函數(shù)即可完成對(duì)指定數(shù)據(jù)的快速傅里葉變換,這一任務(wù)如果用C語言來編程實(shí)現(xiàn)的話,至少要用幾十條C語言才能完成。,因此,MATLAB是一個(gè)簡(jiǎn)單易用、功能強(qiáng)大的高效編程語言。,平臺(tái)無關(guān)性(可移植性)。MATLAB軟件可以運(yùn)行在很多不同的計(jì)算機(jī)系統(tǒng)平臺(tái)上,如Windows Me/NT/2000/XP、很多不同版本的UNIX以及Linux。無論你在哪一個(gè)平臺(tái)上編寫的程序都可以運(yùn)行在其它平臺(tái)上,對(duì)于MATLAB數(shù)據(jù)文件也一樣,是平臺(tái)無關(guān)的。極大保護(hù)了

18、用戶的勞動(dòng)、方便了用戶。其繪圖功能也是平臺(tái)無關(guān)的。無論任何系統(tǒng)平臺(tái),只要MATLAB能夠運(yùn)行,其圖形功能命令就能正常運(yùn)行。,MATLAB是一種腳本式(scripted)的解釋型語言,無論是命令、函數(shù)或變量,只要在命令窗口的提示符下鍵入,并“回車(Enter)”,MATLAB都予以解釋執(zhí)行。,16,功能強(qiáng)大 數(shù)值運(yùn)算優(yōu)勢(shì) 符號(hào)運(yùn)算優(yōu)勢(shì)(Maple) 強(qiáng)大的2D、3D數(shù)據(jù)可視化功能 許多具有算法自適應(yīng)能力的功能函數(shù),17,語言簡(jiǎn)單、內(nèi)涵豐富 語言及其書寫形式非常接近于常規(guī)數(shù)學(xué)書寫形式; 其操作和功能函數(shù)指令就是常用的計(jì)算機(jī)和數(shù)學(xué)書上的一些簡(jiǎn)單英文單詞表達(dá)的,如:help、clear等; 完備的幫助

19、系統(tǒng),易學(xué)易用。 擴(kuò)充能力、可開發(fā)能力較強(qiáng) MATLAB完全成了一個(gè)開放的系統(tǒng) 用戶可以開發(fā)自己的工具箱 可以方便地與Fortran、C等語言接口 編程易、效率高 Matlab以數(shù)組為基本計(jì)算單元 具有大量的算法優(yōu)化的功能函數(shù),18,2 MATLAB的桌面環(huán)境及入門知識(shí),啟動(dòng)與退出MATLAB 命令窗口及使用 數(shù)值表示、變量、表達(dá)式 命令歷史窗口 工作空間 獲取在線幫助,19,2.1 啟動(dòng)與退出MATLAB,啟動(dòng)MATLAB 直接用鼠標(biāo)雙擊桌面上MATLAB7.1圖標(biāo) 或Windows桌面的“開始”“所有程序”“MATLAB7.1” “MATLAB7.1”。 退出MATLAB 關(guān)閉MATLAB

20、桌面 在命令窗口執(zhí)行quit或exit命令 MATLAB缺省桌面(見下頁),20,菜單欄,,工具欄,,文件編輯窗口,,工作空間,,歷史命令 窗口,,Start 菜單,,命令窗口,,命令提示符,,2.1 啟動(dòng)與退出MATLAB (續(xù)),21,2.2 命令窗口的使用,激活命令窗口。 “” 與閃爍的光標(biāo)一起表明系統(tǒng)就緒,等待輸入。 命令窗口脫離MATLAB桌面。 簡(jiǎn)單計(jì)算 【例2.2-1】計(jì)算 (1)在MATLAB命令窗口輸入 以下內(nèi)容: (12+2*(7-4))/32 (2)按【Enter】鍵,指令執(zhí)行。 (3)返回的計(jì)算結(jié)果: ans= 2,22,2.2 命令窗口 (續(xù)),說明 在命令窗口【

21、Enter】鍵提交命令執(zhí)行。 Matlab所用運(yùn)算符(如+、-、等)是各種計(jì)算程序中常見的。 計(jì)算結(jié)果中的“ans”是英文“answer”的一種縮寫,其含義就是“運(yùn)算答案”。ans是Matlab的一個(gè)預(yù)定義變量。,23,2.2 命令窗口 (續(xù)),簡(jiǎn)單計(jì)算(續(xù)) 【例2.2-2】計(jì)算sin(45 ) sin(45*pi/180),Matalb中正弦函數(shù)sin就是常見的正弦函數(shù)。 它的參數(shù)值是以“弧度”為單位的。 pi也是Matalb的預(yù)定義變量。 pi=3.14159 Matlab對(duì)字母大小寫是敏感的。,【例2.2-3】計(jì)算 的值,其中x=4.92。,sqrt(2*exp(4.92+0.5

22、)+1),Matalb中開平方sqrt(x),是英文square root的縮寫 。 Matalb中指數(shù)函數(shù)exp(x),常見的表達(dá)方式。,ans= 0.7071,ans= 21.2781,24,2.2 命令窗口 (續(xù)),“clc”清除窗口顯示內(nèi)容的命令。,【例2.2-4】計(jì)算 的值。,y=2*sin(0.3*pi)/(1+sqrt(5)),y= 0.5000,【例2.2-5】計(jì)算 的值。,y=2*cos(0.3*pi)/(1+sqrt(5)),y= 0.3633,命令行編輯 “”鍵調(diào)回已輸入過命令。 修改。,25,2.2 命令窗口 (續(xù)),【例2.2-5】計(jì)算半徑為5.2m的

23、圓的周長(zhǎng)和面積。 radius=5.2; %圓的半徑 area=pi*5.22, circle_len=2*pi*5.2,area = 84.9487 circle_len = 32.6726,以上兩例,命令行中用到了等號(hào)“=”。 計(jì)算結(jié)果不再賦給“ans”,而是賦給用戶指定的變量y、area、circle_len。 無論是預(yù)定義變量還是用戶自定義變量都被存儲(chǔ)在系統(tǒng)的工作空間內(nèi),即系統(tǒng)定義的一個(gè)存儲(chǔ)窗口變量的內(nèi)存空間。 Who、whos命令用來顯示工作空間的變量 clear命令用來清除工作空間的變量。,26,2.2 命令窗口 (續(xù)),who,whos,Your variables ar

24、e: ans circle_len y area radius,Name Size Bytes Class ans 1x1 8 double array area 1x1 8 double array circle_len 1x1 8 double array radius 1x1 8 double array y 1x1 8 double array Grand total is 5 elements using 40 bytes,27,2.2 命令窗口 (續(xù)),clear y wh

25、o,Your variables are: ans circle_len area radius,clear ans area whos,Your variables are: Name Size Bytes Class circle_len 1x1 8 double array radius 1x1 8 double array Grand total is 2 elements using 16 bytes,28,2.2 命令窗口 (續(xù)),數(shù)值顯示格式設(shè)置 缺省顯示格式:簡(jiǎn)潔的短(short g)格式 窗口命令及語法格式:format 顯示

26、格式關(guān)鍵字 如:format long %15位數(shù)字顯示 常見通用命令 命令含義 clc清除命令窗口的顯示內(nèi)容 clear 清除Matlab工作空間中保存的變量 who或whos顯示Matlab工作空間中的變量信息 dir顯示當(dāng)前工作目錄的文件和子目錄清單 cd顯示或設(shè)置當(dāng)前工作目錄 type顯示指定m文件的內(nèi)容 help或doc獲取在線幫助 quit或exit關(guān)閉/推出MATALB,29,2.3 工作空間,查看工作空間內(nèi)存變量,可以由who、whos 。 命名新變量。 修改變量名 刪除變量 繪圖 保存變量數(shù)據(jù) 裝入數(shù)據(jù),30,2.4 歷史窗口,歷史窗口: 首先記錄每次啟動(dòng)時(shí)間 并記錄

27、在命令窗口輸入命令,此次運(yùn)行期間,輸入的所有命令被記錄為一組,并以此次啟動(dòng)時(shí)間為標(biāo)志。 使用歷史窗口: 可以查看命令窗口輸入過的命令或語句 可以選擇一條或多條命令執(zhí)行拷貝、執(zhí)行、創(chuàng)建M文件等。,要清除歷史記錄,可以選擇Edit菜單中的Clear Command History 命令,31,2.5 當(dāng)前目錄窗口和搜索路徑,當(dāng)前目錄窗口:指Matlab運(yùn)行時(shí)的工作目錄。 只有在當(dāng)前目錄和搜索路徑下的文件、函數(shù)才可以被運(yùn)行和調(diào)用。 如果沒有特殊指明,數(shù)據(jù)文件也將存放在當(dāng)前目錄下; 用戶可以將自己的工作目錄設(shè)置成當(dāng)前目錄,從而使得所有操作都在當(dāng)前目錄中進(jìn)行。,32,搜索路徑:指Matlab執(zhí)行過程中對(duì)

28、變量、函數(shù)和文件進(jìn)行搜索的路徑。 在File菜單中選擇Set Path命令或在命令窗口輸入pathtool命令,出現(xiàn)搜索路徑設(shè)置對(duì)話框:,!修改完搜索路徑后,需要進(jìn)行保存。,33,2.6 獲取在線幫助,MATLAB提供的幫助信息有兩類 簡(jiǎn)單純文本幫助信息 help lookfor(條件比較寬松)例:inverse 窗口式綜合幫助信息(文字、公式、圖形) doc helpwin,34,【功能演示-1】,求方程,的全部根。,p = 2,0,-3,71,-9,13;建立多項(xiàng)式系數(shù)向量 x = roots(p);求根,x = -3.4914 1.6863 + 2.6947i 1.6863 - 2

29、.6947i 0.0594 + 0.4251i 0.0594 - 0.4251i,35,【功能演示-2】求解線性方程組,a = 2,3,-1;8,2,3;45,3,9;建立系數(shù)矩陣a b = 2;4;23;建立列向量b x = inv(a)*b,x = 0.5531 0.2051 -0.2784,36,符號(hào)計(jì)算,syms x y z 建立符號(hào)變量 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/273 y = 8/39 z = -76/273,37,【功能演示-3】求解定積分,求解 I= quad(x.*log(

30、1+x),0,1) ans = 0.250 或 syms x nt(x*log(1+x),0,1) ans = 1/4,38,【功能演示-4】多項(xiàng)式曲線擬合,考慮如下 x-y 一組實(shí)驗(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)

31、 plot( x, y, *, x2, y1, :, x2, y3),,,39,擬合曲線圖,由圖可見,三次擬合結(jié)果較好。,40,2.3 數(shù)值表示、變量及表達(dá)式,數(shù)值的記述 Matlab的數(shù)只采用習(xí)慣的十進(jìn)制表示,可以帶小數(shù)點(diǎn)和負(fù)號(hào);其缺省的數(shù)據(jù)類型為雙精度浮點(diǎn)型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6 變量命令規(guī)則 變量名、函數(shù)名對(duì)字母的大小寫是敏感的。如myVar與myvar表示兩個(gè)不同的變量。 變量名第一個(gè)字母必須是英文字母。 變量名可以包含英文字母、下劃線和數(shù)字。 變量名不能包含空格、標(biāo)點(diǎn)。 變量名最多可包含63個(gè)字符(6.5及以后的版本)。,

32、41,2.3 數(shù)值表示、變量及表達(dá)式 (續(xù)),Matlab預(yù)定義的變量,說明 每當(dāng)MATLAB啟動(dòng)完成,這些變量就被產(chǎn)生。 MATLAB中,被0除不會(huì)引起程序中斷,給出報(bào)警的同時(shí)用inf或NaN給出結(jié)果。 用戶只能臨時(shí)覆蓋這些預(yù)定義變量的值,Clear或重啟MATLAB可恢復(fù)其值。,42,2.3 數(shù)值表示、變量及表達(dá)式 (續(xù)),運(yùn)算符和表達(dá)式,說明 Matlab用“”和”/”分別表示“左除”和“右除”。對(duì)標(biāo)量而言,兩者沒有區(qū)別。對(duì)矩陣產(chǎn)生不同影響。 MATLAB表達(dá)式的書寫規(guī)則與“手寫方式”幾乎完全相同。 表達(dá)式按與常規(guī)相同的優(yōu)先級(jí)自左至右執(zhí)行運(yùn)算。 優(yōu)先級(jí):指數(shù)運(yùn)算級(jí)別最高,乘除次之,加減最

33、低。 括號(hào)改變運(yùn)算的次序。,43,2.3 數(shù)值表示、變量及表達(dá)式 (續(xù)),復(fù)數(shù)及其運(yùn)算 MATLAB中復(fù)數(shù)的表達(dá):z=a+bi,其中a、b為實(shí)數(shù)。 MATLAB把復(fù)數(shù)作為一個(gè)整體,象計(jì)算實(shí)數(shù)一樣計(jì)算復(fù)數(shù)。,【例2.3-1】復(fù)數(shù)z1=3+4i,z2=1+2i, z3= 計(jì)算,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),,44,課堂總結(jié),對(duì)MATALB整個(gè)軟件產(chǎn)品進(jìn)行了概述 歷史發(fā)展 軟件產(chǎn)品家族體系構(gòu)成

34、 M語言的特點(diǎn) MATLAB的入門知識(shí) MATLAB桌面 MATLAB數(shù)值的記述和數(shù)據(jù)顯示格式 變量及其命名規(guī)則 運(yùn)算符及表達(dá)式 常用的MATLAB命令 在線幫助的使用,45,思考題,簡(jiǎn)述MATALB軟件的功能及特點(diǎn)。 簡(jiǎn)述MATALB變量的命名規(guī)則。 熟悉課件中的例子。,Matlab語言及其應(yīng)用,第2講,47,,工作空間,Matlab系統(tǒng)界面,48,2.2 命令窗口 (續(xù)),【例2.2-5】計(jì)算半徑為5.2m的圓的周長(zhǎng)和面積。 radius=5.2; %圓的半徑 area=pi*5.22, circle_len=2*pi*5.2,area = 84.9487 circle_len =

35、 32.6726,以上兩例,命令行中用到了等號(hào)“=”。 計(jì)算結(jié)果不再賦給“ans”,而是賦給用戶指定的變量y、area、circle_len。 無論是預(yù)定義變量還是用戶自定義變量都被存儲(chǔ)在系統(tǒng)的工作空間內(nèi),即系統(tǒng)定義的一個(gè)存儲(chǔ)窗口變量的內(nèi)存空間。 Who、whos命令用來顯示工作空間的變量 clear命令用來清除工作空間的變量。,49,2.2 命令窗口 (續(xù)),who,whos,Your variables are: circle_len area radius,Name Size Bytes Class area 1x1 8 double array ci

36、rcle_len 1x1 8 double array radius 1x1 8 double array Grand total is 3 elements using 24 bytes,50,2.2 命令窗口 (續(xù)),clear radius who,Your variables are: circle_len area,clear area whos,Your variables are: Name Size Bytes Class circle_len 1x1 8 double array Grand total is 1 el

37、ements using 8 bytes,51,2.2 命令窗口 (續(xù)),數(shù)值顯示格式設(shè)置 缺省顯示格式:簡(jiǎn)潔的短(short g,7位有效數(shù)字)格式 窗口命令及語法格式:format 顯示格式關(guān)鍵字 如:format long %15位數(shù)字顯示 常見通用命令 命令含義 clc清除命令窗口的顯示內(nèi)容 clear 清除Matlab工作空間中保存的變量 who或whos顯示Matlab工作空間中的變量信息 dir顯示當(dāng)前工作目錄的文件和子目錄清單 cd顯示或設(shè)置當(dāng)前工作目錄 type顯示指定m文件的內(nèi)容 help或doc獲取在線幫助 quit或exit關(guān)閉/推出MATALB,52,2.3

38、工作空間,查看工作空間內(nèi)存變量,可以由who、whos 。 命名新變量 修改變量名 刪除變量 繪圖 保存變量數(shù)據(jù) 裝入數(shù)據(jù),53,2.4 歷史窗口,歷史窗口: 首先記錄每次啟動(dòng)時(shí)間 并記錄在命令窗口輸入命令,此次運(yùn)行期間,輸入的所有命令被記錄為一組,并以此次啟動(dòng)時(shí)間為標(biāo)志。 使用歷史窗口: 可以查看命令窗口輸入過的命令或語句 可以選擇一條或多條命令執(zhí)行拷貝、執(zhí)行、創(chuàng)建M文件等。,要清除歷史記錄,可以選擇Edit菜單中的Clear Command History 命令,54,2.5 當(dāng)前目錄窗口和搜索路徑,當(dāng)前目錄窗口:指Matlab運(yùn)行時(shí)的工作目錄。 只有在當(dāng)前目錄和搜索路徑下的文件、函數(shù)才可

39、以被運(yùn)行和調(diào)用。 如果沒有特殊指明,數(shù)據(jù)文件也將存放在當(dāng)前目錄下; 用戶可以將自己的工作目錄設(shè)置成當(dāng)前目錄,從而使得所有操作都在當(dāng)前目錄中進(jìn)行。,55,搜索路徑:指Matlab執(zhí)行過程中對(duì)變量、函數(shù)和文件進(jìn)行搜索的路徑。 在File菜單中選擇Set Path命令或在命令窗口輸入pathtool命令,出現(xiàn)搜索路徑設(shè)置對(duì)話框:,!修改完搜索路徑后,需要進(jìn)行保存。,56,2.6 獲取在線幫助,MATLAB提供的幫助信息有兩類 簡(jiǎn)單純文本幫助信息 help lookfor(條件比較寬松)例:inverse 窗口式綜合幫助信息(文字、公式、圖形) doc helpwin,57,【功能演示-1】求方程的根

40、,p = 2,0,-3,71,-9,13;建立多項(xiàng)式系數(shù)向量 x = roots(p);求根,x = -3.4914 1.6863 + 2.6947i 1.6863 - 2.6947i 0.0594 + 0.4251i 0.0594 - 0.4251i,58,【功能演示-2】求解線性方程組,a = 2,3,-1;8,2,3;45,3,9;建立系數(shù)矩陣a b = 2;4;23;建立列向量b z = inv(a)*b,z = 0.5531 0.2051 -0.2784,59,符號(hào)計(jì)算,syms x y z 建立符號(hào)變量 x,y,z=solve(2*x+3*y-z-2,8*x+2*y+3*

41、z-4,45*x+3*y+9*z-23),x = 151/273 y = 8/39 z = -76/273,60,【功能演示-3】求解定積分,求解 I= quad(x.*log(1+x),0,1) ans = 0.250 或 syms x int(x*log(1+x),0,1) ans = 1/4,61,【功能演示-4】多項(xiàng)式曲線擬合,考慮如下 x-y 一組實(shí)驗(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

42、 = 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),62,擬合曲線圖,由圖可見,三次擬合結(jié)果較好。,第2章 Matlab數(shù)據(jù)及其運(yùn)算,Matlab數(shù)據(jù)類型非常豐富,除數(shù)值型、字符型等基本數(shù)據(jù)類型外,還有結(jié)構(gòu)體、單元等更為復(fù)雜的數(shù)據(jù)類型。 各種數(shù)據(jù)類型都以矩陣形式存在,矩陣是Matlab最基本的數(shù)據(jù)對(duì)象,并且矩陣的運(yùn)算是定義在復(fù)數(shù)域上的。,64,2.1 數(shù)值表示、變量及表達(dá)式,數(shù)值的記述 Matla

43、b的數(shù)只采用習(xí)慣的十進(jìn)制表示,可以帶小數(shù)點(diǎn)和負(fù)號(hào);其缺省的數(shù)據(jù)類型為雙精度浮點(diǎn)型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6 變量命令規(guī)則 變量名、函數(shù)名對(duì)字母的大小寫是敏感的。如myVar與myvar表示兩個(gè)不同的變量。 變量名第一個(gè)字母必須是英文字母。 變量名可以包含英文字母、下劃線和數(shù)字。 變量名不能包含空格、標(biāo)點(diǎn)。 變量名最多可包含63個(gè)字符(6.5及以后的版本)。,65,2.1 數(shù)值表示、變量及表達(dá)式 (續(xù)),Matlab預(yù)定義的變量,說明 每當(dāng)MATLAB啟動(dòng)完成,這些變量就被產(chǎn)生。 MATLAB中,被0除不會(huì)引起程序中斷,給出報(bào)警的同時(shí)用in

44、f或NaN給出結(jié)果。 用戶只能臨時(shí)覆蓋這些預(yù)定義變量的值,Clear或重啟MATLAB可恢復(fù)其值。,66,2.1數(shù)值表示、變量及表達(dá)式 (續(xù)),運(yùn)算符和表達(dá)式,說明 Matlab用“”和”/”分別表示“左除”和“右除”。對(duì)標(biāo)量而言,兩者沒有區(qū)別。對(duì)矩陣產(chǎn)生不同影響。 MATLAB表達(dá)式的書寫規(guī)則與“手寫方式”幾乎完全相同。 表達(dá)式按與常規(guī)相同的優(yōu)先級(jí)自左至右執(zhí)行運(yùn)算。 優(yōu)先級(jí):指數(shù)運(yùn)算級(jí)別最高,乘除次之,加減最低。 括號(hào)改變運(yùn)算的次序。,67,2.1 數(shù)值表示、變量及表達(dá)式 (續(xù)),復(fù)數(shù)及其運(yùn)算 MATLAB中復(fù)數(shù)的表達(dá):z=a+bi,其中a、b為實(shí)數(shù)。 MATLAB把復(fù)數(shù)作為一個(gè)整體,象計(jì)算

45、實(shí)數(shù)一樣計(jì)算復(fù)數(shù)。,【例2.3-1】復(fù)數(shù)z1=3+4i,z2=1+2i, z3= 計(jì)算,z1=3+4*i, z2=1+2*i, z3=exp(i*pi/6), z=z1*z2/z3,z_real=real(z), z_image=imag(z),,z_angle=angle(z), z_length=abs(z),,68,2.2 Matlab矩陣(數(shù)組)的表示,數(shù)組的概念 一維數(shù)組變量的創(chuàng)建 二維數(shù)組變量的創(chuàng)建 數(shù)組元素的標(biāo)識(shí)與尋訪 數(shù)組運(yùn)算 多維數(shù)組,69,2.2.1. 數(shù)組(array)的概念,數(shù)組定義: 按行(row)和列(column)順序排列的實(shí)數(shù)或復(fù)數(shù)的有序集,被稱為數(shù)組

46、。 數(shù)組中的任何一個(gè)數(shù)都被稱為這個(gè)數(shù)組的元素,由其所在的行和列標(biāo)識(shí),這個(gè)標(biāo)識(shí)也稱為數(shù)組元素的下標(biāo)或索引。Matlab將標(biāo)量視為11的數(shù)組。 對(duì)m行、n列的2維數(shù)組a: 計(jì)為mn的數(shù)組a; *行標(biāo)識(shí)、列標(biāo)識(shí)均從1開始; 行標(biāo)識(shí)從上到下遞增; 列標(biāo)識(shí)從左到右遞增。,a(3, 4)=34 row is first,a=,70,數(shù)組的分類 一維數(shù)組,也稱為向量(vector) 。 行向量(row vector)、列向量(column vector)。 二維數(shù)組(矩陣matrix)。 多維數(shù)組。 有效矩陣:每行元素的個(gè)數(shù)必須相同,每列元素的個(gè)數(shù)也必須相同。,2.2.1. 數(shù)組(array)的概念,71

47、,2.2.1、數(shù)組(array)的概念 (續(xù)),行向量,列向量,a(2,1)=3,a(1,2)=2,b(3)=3,c(2)=2,72,2.2.2、創(chuàng)建一維數(shù)組變量,第一種方法:使用方括號(hào)“ ”操作符 【例2-1】創(chuàng)建數(shù)組(行向量)a=1 3 pi 3+5i a=1 3 pi 3+5*i %or a=1, 3, pi, 3+5*i a= 1.0000 3.0000 3.1416 3.0000 + 5.0000i 所有的向量元素必須在操作符“ ”之內(nèi); 向量元素間用空格或英文的逗點(diǎn)“,”分開。 第二種方法:使用冒號(hào)“:”操作符 【例2-2】創(chuàng)建以110順序排列整數(shù)為元素的行向量b。b=1:1

48、0 b=1 2 3 4 5 6 7 8 9 10,73,2.2.2、創(chuàng)建一維數(shù)組變量(續(xù)),【例2-3】鍵入并執(zhí)行c=1:2:10和d=1:2:9 c=1:2:10 c=1 3 5 7 9 d=1:2:9 d= 1 3 5 7 9 利用冒號(hào)“:”操作符創(chuàng)建行向量的基本語法格式: x=Start:Increment:End Start表示新向量x的第一個(gè)元素; 新向量x的最后一個(gè)元素不能大于End ; Increment可正可負(fù),若負(fù),則必須StartEnd;若正,則必須Start

49、建一維數(shù)組變量(續(xù)),第三種方法:利用函數(shù)linspace 函數(shù)linspace的基本語法 x= linspace(x1, x2, n) 該函數(shù)生成一個(gè)由n個(gè)元素組成的行向量; x1為其第一個(gè)元素; x2為其最后一個(gè)元素; x1、x2之間元素的間隔=(x2-x1)/(n-1)。 如果忽略參數(shù)n,則系統(tǒng)默認(rèn)生成100個(gè)元素的行向量。 【例2-4】鍵入并執(zhí)行x= linspace(1,2,5) x=1.0000 1.2500 1.5000 1.7500 2.0000 同學(xué)們可以在實(shí)驗(yàn)時(shí)察看x= linspace(1,2)執(zhí)行結(jié)果。,75,2.2.2、創(chuàng)建一維數(shù)組變量(續(xù)),第四種方法:利用函數(shù)lo

50、gspace 通過實(shí)驗(yàn)認(rèn)識(shí)該函數(shù)的功能。 列向量的創(chuàng)建 使用方括號(hào)“ ”操作符,使用分號(hào)“;”分割行。 【例2-5】鍵入并執(zhí)行x= 1; 2; 3 X=1 2 3 使用冒號(hào)操作符 【例2-6】鍵入并執(zhí)行x= (1:3) % “ ”表示矩陣的轉(zhuǎn)置,76,2.2.2、創(chuàng)建一維數(shù)組變量 (續(xù)),創(chuàng)建數(shù)組變量的一般方法 創(chuàng)建變量的賦值語句的一般格式 var=expression var為變量名 expression為MATLAB合法表達(dá)式 可以是單獨(dú)的常數(shù)值或數(shù)值數(shù)組; 也可以由常數(shù)值、其他變量(部分或全部)、數(shù)值數(shù)組和運(yùn)算符(+、-等)構(gòu)成。 【例2-7】鍵入并執(zhí)行 a=0 1+6; b=a 6

51、 7; c=6 a 7; d=6 a 7 a;,77,2.2.2、創(chuàng)建一維數(shù)組變量 (續(xù)),一旦被創(chuàng)建,變量就被存儲(chǔ)在工作空間,可以通過“Workspace”窗口或在“Command Window”執(zhí)行“whos”命令察看。 操作一: 使用“Workspace”窗口察看變量 操作二: 使用“whos”命令察看變量,78,2.2.3、創(chuàng)建二維數(shù)組變量,第一種方法:使用方括號(hào)“ ”操作符 使用規(guī)則 數(shù)組元素必須在“ ”內(nèi)鍵入; 行與行之間須用分號(hào)“;” 間隔,也可以在分行處用回車鍵間隔; 行內(nèi)元素用空格或逗號(hào)“,”間隔。 【例3-1】鍵入并執(zhí)行a2=1 2 3;4 5 6;7 8 9 a2= 1

52、 2 3 4 5 6 7 8 9 【例3-2】鍵入并執(zhí)行a2=1:3;4:6;7:9 %結(jié)果同上,79,2.2.3、創(chuàng)建二維數(shù)組變量(續(xù)),【例3-3】由向量構(gòu)成二維數(shù)組。 a=1 2 3; b=2 3 4; c=a;b; c1=a b; 第二種方法:函數(shù)方法 函數(shù)ones(生成全1矩陣)、zeros (生成全0矩陣) 、reshape “help elmat”獲得基本的矩陣生成和操作函數(shù)列表 【例3-4】創(chuàng)建全1的3x3數(shù)組。 ones(3) 【例3-5】創(chuàng)建全1的3x4數(shù)組。 ones(3,4),80,2.2.3、創(chuàng)建二維數(shù)組變量(續(xù)),【例3-5】 reshape的使用演示 a=-4

53、:4 a= -4 -3 -2 -1 0 1 2 3 4 b=reshape(a, 3, 3) b= -4 -1 2 -3 0 3 -2 1 4 數(shù)組元素的排列順序,從上到下按列排列,先排第一列,然后第二列, 要求數(shù)組的元素總數(shù)不變。,81,4、數(shù)組元素的標(biāo)識(shí)與尋訪,數(shù)組元素的標(biāo)識(shí) “全下標(biāo)(index)”標(biāo)識(shí) 經(jīng)典數(shù)學(xué)教科書采用“全下標(biāo)”標(biāo)識(shí)法:每一維對(duì)應(yīng)一個(gè)下標(biāo)。 如對(duì)于二維數(shù)組,用“行下標(biāo)和列下標(biāo)”標(biāo)識(shí)數(shù)組的元素,a(2,3)就表示二維數(shù)組a的“第2行第3列”的元素。 對(duì)于一維數(shù)組,用一個(gè)下標(biāo)即可,b(2)表示一維數(shù)組b的第2個(gè)元素,無論b是行向量還是列向量。 “單下標(biāo)”(linear i

54、ndex)標(biāo)識(shí) 所謂“單下標(biāo)”標(biāo)識(shí)就是用一個(gè)下標(biāo)來表明元素在數(shù)組的位置。 對(duì)于二維數(shù)組, “單下標(biāo)”編號(hào):設(shè)想把二維數(shù)組的所有列,按先后順序首尾相接排成“一維長(zhǎng)列”,然后自上往下對(duì)元素位置執(zhí)行編號(hào)。 兩種“下標(biāo)”標(biāo)識(shí)的變換:sub2ind、ind2sub,82,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),【例4-1】單下標(biāo)的使用 a=zeros(2, 5); a(:)=-4:5 a = -4 -2 0 2 4 -3 -1 1 3 5 注意數(shù)組的排列順序。,83,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),元素與子數(shù)組的尋訪與賦值 【例4-3】一維數(shù)組元素與子數(shù)組的尋訪與賦值 a=linspace(

55、1,10,5) a = 1.0000 3.2500 5.5000 7.7500 10.0000 a(3) %尋訪a的第3個(gè)元素 ans = 5.5000 a(1 2 5) %尋訪a的第1、2、5個(gè)元素組成的子數(shù)組 ans = 1.0000 3.2500 10.0000,84,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),a(1:3) %尋訪前3個(gè)元素組成的子數(shù)組 ans = 1.0000 3.2500 5.5000 a(3:-1:1) %由前3個(gè)元素倒序構(gòu)成的子數(shù)組 ans = 5.5000 3.2500 1.0000 a(3:end) ans = 5.5000 7.7500 10.0000

56、 a(3:end-1) ans = 5.5000 7.7500,%第3個(gè)及其后所有元素構(gòu)成的子數(shù)組 函數(shù)end作為參數(shù)使用,返回最后一個(gè)元素的下標(biāo),85,a(1 2 3 5 5 3 2 1) ans = 1.0000 3.2500 5.5000 10.0000 10.0000 5.5000 3.2500 1.0000 數(shù)組元素可以被任意重復(fù)訪問,構(gòu)成長(zhǎng)度大于原數(shù)組的新數(shù)組。 a(6) ??? Index exceeds matrix dimensions. 下標(biāo)值超出了數(shù)組的維數(shù),導(dǎo)致錯(cuò)誤 a(2.1) ??? Subscript indices must either be real p

57、ositive integers or logicals. 下標(biāo)值只能取正整數(shù)或邏輯值,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),86,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),a(3)=0 %修改數(shù)組a的第3元素值為0 a = 1.0000 3.2500 0 7.7500 10.0000 a(2 5)=1 1 a = 1.0000 1.0000 0 7.7500 1.0000 可以修改指定數(shù)組元素的值 一次可以修改多個(gè)數(shù)組元素的值 要修改的數(shù)組元素的個(gè)數(shù)應(yīng)與送入數(shù)組的元素個(gè)數(shù)相同,87,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),【例4-3】二維數(shù)組元素與子數(shù)組的尋訪與賦值 a_2=zeros(2, 4) %

58、創(chuàng)建2x4的全0數(shù)組 a_2 = 0 0 0 0 0 0 0 0 a_2(:)=1:8 a_2 = 1 3 5 7 2 4 6 8 a_2(2 5 8) %單下標(biāo)方式尋訪多個(gè)元素 ans = 2 5 8,注意元素的排列順序,88,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)), a_2(2 5 8) =10 20 30 a_2 = 1 3 20 7 10 4 6 30 a_2(:,2 3)=ones(2) %雙下標(biāo)方式尋訪并修改 a_2 = 1 1 1 7 10 1 1 30 二維數(shù)組可以“單下標(biāo)”方式或“全下標(biāo)”方式訪問、賦值; “單下標(biāo)

59、”方式賦值時(shí),等號(hào)兩邊涉及的元素個(gè)數(shù)必須相等; “全下標(biāo)”方式賦值時(shí),等號(hào)右邊數(shù)組的大小必須等于原數(shù)組中涉及元素構(gòu)成的子數(shù)組的大小。,89,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),a_2(:,end) ans = 7 30 a_2(:,end-1) ans = 1 1 a_2(:, end:-1:3) ans = 7 1 30 1,a_2(end,:) ans = 10 1 1 30 a_2(end,2:4) ans = 1 1 30 a_2 (4 6)=6:7 a_2 = 1 1 1 7 10 6 7 30 a_2(end,2:end-1) What is

60、the result?,,90,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(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ù),91,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),雙下標(biāo)到單下標(biāo)的轉(zhuǎn)換,,【例4-5】 sub2ind函數(shù)-雙下標(biāo)轉(zhuǎn)換為單下標(biāo) A = 17 24 1 8; 2 22 7 14; 4 6 13 20; A(:,:,2) = A - 10 A(2,1,2) sub2ind(si

61、ze(A),2,1,2) A(14),92,4、數(shù)組元素的標(biāo)識(shí)與尋訪 (續(xù)),單下標(biāo)到雙下標(biāo)的轉(zhuǎn)換,,【例4-6】 ind2sub函數(shù)-雙下標(biāo)轉(zhuǎn)換為單下標(biāo) b = zeros(3); b(:) = 1:9 IND = 3 4 5 6 I,J = ind2sub(size(b),IND),Matlab語言及其應(yīng)用,第3講,94,2.2.2、創(chuàng)建一維數(shù)組變量,第一種方法:使用方括號(hào)“ ”操作符 【例2-1】創(chuàng)建數(shù)組(行向量)a=1 3 pi 3+5i a=1 3 pi 3+5*i %or a=1, 3, pi, 3+5*i a= 1.0000 3.0000 3.1416 3.0000 + 5

62、.0000i 所有的向量元素必須在操作符“ ”之內(nèi); 向量元素間用空格或英文的逗點(diǎn)“,”分開。 第二種方法:使用冒號(hào)“:”操作符 【例2-2】創(chuàng)建以110順序排列整數(shù)為元素的行向量b。b=1:10 b=1 2 3 4 5 6 7 8 9 10,95,2.2.2、創(chuàng)建一維數(shù)組變量(續(xù)),【例2-3】鍵入并執(zhí)行c=1:2:10和d=1:2:9 c=1:2:10 c=1 3 5 7 9 d=1:2:9 d= 1 3 5 7 9 利用冒號(hào)“:”操作符創(chuàng)建行向量的基本語法格式: x=Start:Increment:End Start表示新向量x的第一個(gè)元素; 新向量x的最后一個(gè)元素不能大于End ; I

63、ncrement可正可負(fù),若負(fù),則必須StartEnd;若正,則必須Start

64、00 1.2500 1.5000 1.7500 2.0000 同學(xué)們可以在實(shí)驗(yàn)時(shí)察看x= linspace(1,2)執(zhí)行結(jié)果。,97,2.2.2、創(chuàng)建一維數(shù)組變量(續(xù)),列向量的創(chuàng)建 使用方括號(hào)“ ”操作符,使用分號(hào)“;”分割行。 【例2-5】鍵入并執(zhí)行x= 1; 2; 3 X=1 2 3 使用冒號(hào)操作符 【例2-6】鍵入并執(zhí)行x= (1:3) % “ ”表示矩陣的轉(zhuǎn)置,98,2.2.2、創(chuàng)建一維數(shù)組變量 (續(xù)),創(chuàng)建數(shù)組變量的一般方法 創(chuàng)建變量的賦值語句的一般格式 var=expression var為變量名 expression為MATLAB合法表達(dá)式 可以是單獨(dú)的常數(shù)值或數(shù)值數(shù)組;

65、也可以由常數(shù)值、其他變量(部分或全部)、數(shù)值數(shù)組和運(yùn)算符(+、-等)構(gòu)成。 【例2-7】鍵入并執(zhí)行 a=0 1+6; b=a 6 7; c=6 a 7; d=6 a 7 a;,99,2.2.2、創(chuàng)建一維數(shù)組變量 (續(xù)),一旦被創(chuàng)建,變量就被存儲(chǔ)在工作空間,可以通過“Workspace”窗口或在“Command Window”執(zhí)行“whos”命令察看。 操作一: 使用“Workspace”窗口察看變量 操作二: 使用“whos”命令察看變量,100,2.2.3、創(chuàng)建二維數(shù)組變量,第一種方法:使用方括號(hào)“ ”操作符 使用規(guī)則 數(shù)組元素必須在“ ”內(nèi)鍵入; 行與行之間須用分號(hào)“;” 間隔,也可以在分

66、行處用回車鍵間隔; 行內(nèi)元素用空格或逗號(hào)“,”間隔。 【例3-1】鍵入并執(zhí)行a2=1 2 3;4 5 6;7 8 9 a2= 1 2 3 4 5 6 7 8 9 【例3-2】鍵入并執(zhí)行a2=1:3;4:6;7:9 %結(jié)果同上,101,2.2.3、創(chuàng)建二維數(shù)組變量(續(xù)),【例3-3】由向量構(gòu)成二維數(shù)組。 a=1 2 3; b=2 3 4; c=a;b; c1=a b; 第二種方法:函數(shù)方法 函數(shù)ones(生成全1矩陣)、zeros (生成全0矩陣) 、reshape “help elmat”獲得基本的矩陣生成和操作函數(shù)列表 【例3-4】創(chuàng)建全1的3x3數(shù)組。 ones(3) 【例3-5】創(chuàng)建全1的3x4數(shù)組。 ones(3,4),102,2.2.3、創(chuàng)建二維數(shù)組變量(續(xù)),【例3-5】 reshape的使用演示 a=-4:4 a= -4 -3 -2 -1 0 1 2 3 4 b=reshape(a, 3, 3) b= -4 -1 2 -3 0 3 -2 1 4 數(shù)組元素的排列順序,從上到下按列排列,先排第一列,然后第二列, 要求數(shù)組的元素總數(shù)不變。,103,4、數(shù)組元素的標(biāo)識(shí)與尋訪

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!