matlab仿真設計ppt(全)_第1頁
matlab仿真設計ppt(全)_第2頁
matlab仿真設計ppt(全)_第3頁
matlab仿真設計ppt(全)_第4頁
matlab仿真設計ppt(全)_第5頁
已閱讀5頁,還剩340頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、MATLAB MATLAB 程序程序設計設計授課教師:鄒曉春 電子信息學院 Matlab programming 2022-5-152 Matlab programming課程的作用課程的作用課程的目的課程的目的課程的特點課程的特點課程的安排課程的安排授課宗旨授課宗旨 2022-5-15 3 Matlab programming課程的作用課程的作用 在歐美各在歐美各高等學校高等學校,MatlabMatlab成為線性代數(shù)、自動控制理論、成為線性代數(shù)、自動控制理論、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真、圖像處理等數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真、圖像處理等諸多課程的基本教學工具,成為諸

2、多課程的基本教學工具,成為本科生、碩士生和博士生的本科生、碩士生和博士生的必須掌握的基本技能。必須掌握的基本技能。 在在設計研究單位和工業(yè)部門設計研究單位和工業(yè)部門,MatlabMatlab已被廣泛地用于研究已被廣泛地用于研究和和解決各種具體的工程問題解決各種具體的工程問題。 可以預見,可以預見,MatlabMatlab將在我國科學研究和工程應用中發(fā)揮越將在我國科學研究和工程應用中發(fā)揮越來越大的作用。來越大的作用。 2022-5-154 Matlab Programing 講授講授MATLABMATLAB語言基礎入門知識,語言基礎入門知識,介紹介紹MATLABMATLAB產品的體系、產品的體系

3、、MATLABMATLAB桌面工具桌面工具的使用方法,的使用方法,重點介紹重點介紹MATLABMATLAB的數(shù)據(jù)可視化、數(shù)值計算的基本步驟的數(shù)據(jù)可視化、數(shù)值計算的基本步驟以及以及如何使如何使用用MATLABMATLAB語言編寫整潔、高效、規(guī)范的程序。語言編寫整潔、高效、規(guī)范的程序。并涉及到一些具體的并涉及到一些具體的專業(yè)應用工專業(yè)應用工具箱具箱(如:信號處理工具箱、圖像處理工具箱等)(如:信號處理工具箱、圖像處理工具箱等)。 通過本課程的學習,通過本課程的學習,了解、熟悉、掌握了解、熟悉、掌握 MATLABMATLAB的基本編程方法,并具有初的基本編程方法,并具有初步的利用計算機處理、解決實際

4、問題的能力步的利用計算機處理、解決實際問題的能力,為進一步學習后續(xù)的專業(yè)課程做為進一步學習后續(xù)的專業(yè)課程做好準備。好準備。本課程的目的本課程的目的( Objectives of This CourseObjectives of This Course ) 本課程的特點本課程的特點( Features of This CourseFeatures of This Course ) 交叉性課程,是交叉性課程,是計算機技術、數(shù)學理論計算機技術、數(shù)學理論知識以及諸多知識以及諸多工程理論工程理論知識的綜合。知識的綜合。 實踐性課程。實踐性課程。 內容多,課時少,要求同學上課認真聽講,要充分利用上機實踐消

5、化、理解、內容多,課時少,要求同學上課認真聽講,要充分利用上機實踐消化、理解、 掌握課上講解內容。掌握課上講解內容。課程的目的和特點課程的目的和特點課程的安排課程的安排 2022-5-155 Matlab Programing課堂教學:共課堂教學:共3232學時;學時;教材教材MATLABMATLAB基礎教程基礎教程 孫蓬孫蓬 主編;清華大學出版社,主編;清華大學出版社,2012011 1年年主要參考書主要參考書MATLABMATLAB編程編程 美美 Stephen J.Chapman Stephen J.Chapman著;邢樹軍著;邢樹軍 等譯,科學等譯,科學出版社,出版社,20102010

6、年年工程與科學數(shù)值計算工程與科學數(shù)值計算MATLABMATLAB實現(xiàn)實現(xiàn) 美美 夏普若著;唐玲艷夏普若著;唐玲艷 等等譯,清華大學出版社,譯,清華大學出版社,20092009年年高等應用數(shù)學問題的高等應用數(shù)學問題的MATLABMATLAB求解求解 薛定宇等著,清華大學出薛定宇等著,清華大學出版社,版社,20042004年年 MATLAB MATLAB程序設計與應用程序設計與應用 劉衛(wèi)國主編,高等教育出版社,劉衛(wèi)國主編,高等教育出版社,20062006 2022-5-156 Matlab Programing 講授講授MATLAB的通用功能。的通用功能。 寓教于例,由淺入深。寓教于例,由淺入深。

7、 關于科學計算,著重強調理論概念、算法和實際計算三者關于科學計算,著重強調理論概念、算法和實際計算三者 之間的關系。之間的關系。授課宗旨授課宗旨第1章Matlab概述概述1 Matlab1 Matlab概述概述 2022-5-158 Matlab Programing前言前言MatlabMatlab軟件概述軟件概述內容內容MatlabMatlab發(fā)展歷史發(fā)展歷史MatlabMatlab產品家族產品家族(Matlab family of products)(Matlab family of products)體系體系Matlab Matlab 語言的特點。語言的特點。目的目的全面了解全面了解 M

8、atlabMatlab軟件包軟件包激發(fā)對激發(fā)對MatlabMatlab軟件的學習興趣。軟件的學習興趣。 2022-5-159 Matlab Programing1.1 MATLAB1.1 MATLAB的歷史及影響的歷史及影響 7070年代中期年代中期,Cleve MolerCleve Moler博土及其同事在美國國家基金會博土及其同事在美國國家基金會的幫助下,開發(fā)了的幫助下,開發(fā)了LINPACKLINPACK和和EISPACKEISPACK的的FORTRANFORTRAN語言語言子程序庫,子程序庫,這兩個程序庫代表了當時矩陣運算的最高水平。這兩個程序庫代表了當時矩陣運算的最高水平。到了到了70

9、70年代后期年代后期,身為美國新墨西哥州大學計算機系系主,身為美國新墨西哥州大學計算機系系主任的任的CIeve MolerCIeve Moler,在給學生上線性代數(shù)課時,為了讓學生,在給學生上線性代數(shù)課時,為了讓學生能使用這兩個子程序庫,同時又不用在編程上花費過多的能使用這兩個子程序庫,同時又不用在編程上花費過多的時間,開始著手用時間,開始著手用FORTRANFORTRAN語言為學生編寫使用語言為學生編寫使用LINPACKLINPACK和和EISPACKEISPACK的接口程序,他將這個程序取名為的接口程序,他將這個程序取名為MATLABMATLAB,其名稱是由其名稱是由MATrixMATri

10、x和和 LABoratoryLABoratory(矩陣實驗室)(矩陣實驗室)兩個單詞的前三個字母所合成兩個單詞的前三個字母所合成。在在19781978年年,MalabMalab就面世了。這個程序獲得了很大的成功,就面世了。這個程序獲得了很大的成功,受到了學生的廣泛歡迎。在以后的幾年里,受到了學生的廣泛歡迎。在以后的幾年里,MatlabMatlab在多所在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳。件廣為流傳。Cleve Moler 2022-5-1510 Matlab Programing 將將MATLABMATLAB商品

11、化的不是商品化的不是Cleve MolerCleve Moler, ,而是一個名叫而是一個名叫Jack LittleJack Little的人。當免費的的人。當免費的MATLABMATLAB軟件到軟件到StanfordStanford大學,大學,Jack LittleJack Little正在該正在該校主修校主修控制控制,便接觸到了當時,便接觸到了當時MATLABMATLAB,直覺告訴他,這是一個,直覺告訴他,這是一個具有巨大發(fā)展?jié)摿Φ能浖?。因此他在畢業(yè)沒多久,就開始具有巨大發(fā)展?jié)摿Φ能浖R虼怂诋厴I(yè)沒多久,就開始用用C C語語言重新編寫了言重新編寫了MATLABMATLAB的核心的核心。在

12、在MolerMoler的協(xié)助下,于的協(xié)助下,于19841984年成年成立立MathWorksMathWorks公司,首次推出公司,首次推出MATLABMATLAB商用版。在其商用版推出商用版。在其商用版推出的初期,的初期,MATLABMATLAB就以其優(yōu)秀的品質(就以其優(yōu)秀的品質(高效的數(shù)據(jù)計算能力和開高效的數(shù)據(jù)計算能力和開放的體系結構)放的體系結構)占據(jù)了大部分數(shù)學計算軟件的市場,原來應用于占據(jù)了大部分數(shù)學計算軟件的市場,原來應用于控制領域里的一些封閉式數(shù)學計算軟件包(如英國的控制領域里的一些封閉式數(shù)學計算軟件包(如英國的UMISTUMIST、瑞、瑞典的典的LUNDLUND和和SIMNONS

13、IMNON、德國的、德國的KEDDCKEDDC)就紛紛被淘汰或在)就紛紛被淘汰或在MATLABMATLAB上重建。上重建。Jack Little 2022-5-1511 Matlab Programing Cleve MolerCleve Moler至今仍是該公司的首席科學家,至今仍是該公司的首席科學家,他以他以6060多歲的高齡,還常常親自進行撰寫多歲的高齡,還常常親自進行撰寫程序的工作,非常令人佩服。如果你有數(shù)值運算方面的高水平問題,寄到程序的工作,非常令人佩服。如果你有數(shù)值運算方面的高水平問題,寄到 MathWorks MathWorks 后,后,大部份還是會由大部份還是會由 Cleve

14、 MolerCleve Moler親自回答。在親自回答。在19941994年,年,PentiumPentium芯片曾發(fā)生芯片曾發(fā)生FdivFdiv的的bugbug,當時,當時Cleve MolerCleve Moler是第一個以軟件方式解決此是第一個以軟件方式解決此bugbug的人,曾一時膾炙人口。的人,曾一時膾炙人口。 在公司初創(chuàng)的五年,在公司初創(chuàng)的五年,Jack LittleJack Little非常辛苦,常常身兼數(shù)職(董事長、總經理、推銷、非常辛苦,常常身兼數(shù)職(董事長、總經理、推銷、程序開發(fā)等),但公司一直穩(wěn)定發(fā)展,從當初的一人公司,到程序開發(fā)等),但公司一直穩(wěn)定發(fā)展,從當初的一人公司

15、,到19931993年的年的200200人,到人,到20002000年的年的 500500余人,到余人,到20052005年公司員工達到了年公司員工達到了13001300人,不但打敗其他競爭軟件,而且前景一片欣欣向人,不但打敗其他競爭軟件,而且前景一片欣欣向榮。根據(jù)榮。根據(jù)Jack LittleJack Little個人說法,個人說法,MATLABMATLAB早期成功的兩大因素是:選用了早期成功的兩大因素是:選用了C C語言及選定語言及選定PCPC為主為主要平臺,這似乎和微軟的成功有相互呼應之妙。要平臺,這似乎和微軟的成功有相互呼應之妙。 MathWorksMathWorks公司,目前仍然是私

16、人企業(yè),并未上市,這和公司,目前仍然是私人企業(yè),并未上市,這和Jack LittleJack Little個人理念有關,個人理念有關,他認為他認為MATLABMATLAB的設計方向應該一直是以顧客的需求與軟件的完整性為首要目標,的設計方向應該一直是以顧客的需求與軟件的完整性為首要目標,而不是以盈而不是以盈利為主要目的,因此利為主要目的,因此MATLABMATLAB一直是在穩(wěn)定中求進步,而不會因為上市而遭受股東左右其發(fā)展一直是在穩(wěn)定中求進步,而不會因為上市而遭受股東左右其發(fā)展方向。這也是為什么方向。這也是為什么MATLABMATLAB新版本總是姍姍來遲的原因,因為他們不會因為市場的需求而推新版本

17、總是姍姍來遲的原因,因為他們不會因為市場的需求而推出不成熟的產品。此外,由于出不成熟的產品。此外,由于Jack LittleJack Little保守的個性,也使得保守的個性,也使得MathWorksMathWorks不曾跨足不曾跨足MATLAB/SimulinkMATLAB/Simulink以外的行業(yè),當前商場上紛紛擾擾的并購或分家,以外的行業(yè),當前商場上紛紛擾擾的并購或分家,MathWorksMathWorks完全是絕緣體。完全是絕緣體。 2022-5-1512 Matlab Programing 1992 1992年,支持年,支持Windows 3.xWindows 3.x的的MATLA

18、B 4.0MATLAB 4.0版本推出,增加了版本推出,增加了SimulinkSimulink,ControlControl,Neural NetworkNeural Network,Signal ProcessingSignal Processing等專用工具箱。等專用工具箱。 1993 1993年年1111月,月,MathWorksMathWorks公司推出了公司推出了Matlab 4.1Matlab 4.1,其中主要增加了符號運算功能。,其中主要增加了符號運算功能。當升級至當升級至Matlab 4.2cMatlab 4.2c,這一功能在用戶中得到廣泛應用。,這一功能在用戶中得到廣泛應用。

19、 19971997年,年,Matlab 5.0Matlab 5.0版本問世了版本問世了, ,實現(xiàn)了真正的實現(xiàn)了真正的3232位運算,加快數(shù)值計算,圖形表現(xiàn)位運算,加快數(shù)值計算,圖形表現(xiàn)有效。有效。 20012001年初,年初,MathWorksMathWorks公司推出了公司推出了Matlab 6.0Matlab 6.0(R12R12)。)。 20022002年年7 7月,推出了月,推出了Matlab 6.5(R13)Matlab 6.5(R13),在這一版本中,在這一版本中SimulinkSimulink升級到了升級到了5.05.0,性能有,性能有了很大提高,另一大特點是推出了了很大提高,另

20、一大特點是推出了JITJIT程序加速器,程序加速器,MatlabMatlab的計算速度有了明顯的的計算速度有了明顯的提高。提高。 20052005年年9 9月,推出了月,推出了MAILAB 7.1(Release14 SP3)MAILAB 7.1(Release14 SP3),在這一版本中,在這一版本中SimulinkSimulink升級到了升級到了6.36.3,軟件性能有了新的提高,用戶界面更加友好。值得說明的是,軟件性能有了新的提高,用戶界面更加友好。值得說明的是,Matlab V7.1Matlab V7.1版版采用了更先進的數(shù)學程序庫,即采用了更先進的數(shù)學程序庫,即“LAPACK”LAP

21、ACK”和和“BLAS”BLAS”。目前,目前,MatlabMatlab軟件支持多種系統(tǒng)平臺,如常見的軟件支持多種系統(tǒng)平臺,如常見的WindowsNT/XPWindowsNT/XP、UNIXUNIX、LinuxLinux等。等。MatlabMatlab版本的發(fā)展版本的發(fā)展 2022-5-1513 Matlab Programing MATLABMATLAB就是這樣經過了近就是這樣經過了近3030年的專門打造、年的專門打造、2020多年的千錘百煉,它以高性能多年的千錘百煉,它以高性能的的數(shù)組運算(包括矩陣運算)數(shù)組運算(包括矩陣運算)為基礎,不僅實現(xiàn)了大多數(shù)數(shù)學算法的為基礎,不僅實現(xiàn)了大多數(shù)數(shù)學

22、算法的高效運行函高效運行函數(shù)數(shù)和和數(shù)據(jù)可視化數(shù)據(jù)可視化,而且提供了非常高效的,而且提供了非常高效的計算機高級編程語言計算機高級編程語言,在用戶可參與的,在用戶可參與的情況下,情況下,各種專業(yè)領域的工具箱各種專業(yè)領域的工具箱不斷開發(fā)和完善,不斷開發(fā)和完善,MATLABMATLAB取得了巨大的成功,已取得了巨大的成功,已廣泛應用于廣泛應用于科學研究、工程應用,用于數(shù)值計算分析、系統(tǒng)建模與仿真。科學研究、工程應用,用于數(shù)值計算分析、系統(tǒng)建模與仿真。 早在早在2020世紀世紀9090年代初年代初,歐美等發(fā)達國家的大學就將,歐美等發(fā)達國家的大學就將MATLABMATLAB列為一種必須掌握列為一種必須掌握

23、的編程語言。近幾年來,國內的很多大學也將的編程語言。近幾年來,國內的很多大學也將MATLABMATLAB列為了本科生必修課程。列為了本科生必修課程。 與與MapleMaple、MathematicaMathematica數(shù)學計算軟件相比,數(shù)學計算軟件相比,MATLABMATLAB以數(shù)值計算見長,而以數(shù)值計算見長,而MapleMaple等以符號運算見長,能給出解析解和任意精度解,而處理大量數(shù)據(jù)的能力遠不如等以符號運算見長,能給出解析解和任意精度解,而處理大量數(shù)據(jù)的能力遠不如MATLABMATLAB。 MATLABMATLAB軟件功能之強大、應用之廣泛,已成為為軟件功能之強大、應用之廣泛,已成為為

24、2121世紀最為重要的科學計算世紀最為重要的科學計算語言語言??梢妼W習掌握這一工具的重要性。可見學習掌握這一工具的重要性。 2022-5-1514 Matlab Programing MATLABMATLAB產品由若干模塊組成,不同的模塊完成不同的功能,其中有:產品由若干模塊組成,不同的模塊完成不同的功能,其中有: 實際上實際上MATLABMATLAB本身就是一個極其豐富的資源庫,那么應該從哪一部分開始著手、學本身就是一個極其豐富的資源庫,那么應該從哪一部分開始著手、學習使用習使用MATLABMATLAB呢?這就有必要了解這一軟件產品的體系結構呢?這就有必要了解這一軟件產品的體系結構 。MAT

25、LAB CompilerMATLAB Compiler這種編譯器可以將這種編譯器可以將MATLABMATLAB程程序文件編譯生成標準的序文件編譯生成標準的C/C+C/C+語言文件,而生成語言文件,而生成的標準的的標準的C/C+C/C+文件可以被任何一種文件可以被任何一種C/C+C/C+編譯編譯器編譯生成函數(shù)庫或可執(zhí)行文件,以提高程序的器編譯生成函數(shù)庫或可執(zhí)行文件,以提高程序的運行效率。運行效率。1.2 MATLAB1.2 MATLAB產品的體系結構產品的體系結構 MATLABMATLABMATLAB ToolboxesMATLAB ToolboxesMATLAB CompilerMATLAB

26、CompilerSimulinkSimulinkSimulink BlocksetsSimulink BlocksetsReal-Time Workshop (RTW)Real-Time Workshop (RTW)StateflowStateflowStateflow CoderStateflow Coder由這些模塊產品之間的關系可以圖由這些模塊產品之間的關系可以圖1.11.1表示。表示。圖1.1 MATLAB產品體系結構圍繞著圍繞著MATLABMATLAB這個計算核心,形成了諸多針對不同這個計算核心,形成了諸多針對不同應用領域的算法程序包,被稱為專用工具箱應用領域的算法程序包,被稱為專用

27、工具箱(ToolboxToolbox),這些工具箱的列表以及每個工具箱的使),這些工具箱的列表以及每個工具箱的使用詳見用詳見MATLABMATLAB在線幫助文檔。在線幫助文檔。MATLABMATLAB本身所提供本身所提供的工具箱大概有的工具箱大概有4040多個,另外還有其他公司或研究單多個,另外還有其他公司或研究單位開發(fā)提供的工具箱,這些工具箱的總數(shù)已有位開發(fā)提供的工具箱,這些工具箱的總數(shù)已有100100多個,多個,而且新的工具箱還在不斷增加。如果你有特別的應用而且新的工具箱還在不斷增加。如果你有特別的應用領域,可以首先到網上查找是否已有相關的工具箱,領域,可以首先到網上查找是否已有相關的工具

28、箱,很可能已有人將你要做的應用程序作成工具箱了。很可能已有人將你要做的應用程序作成工具箱了。SimulinkSimulink是窗口圖形方式的、專門用于連續(xù)時是窗口圖形方式的、專門用于連續(xù)時間或離散時間的動態(tài)系統(tǒng)建模、分析和仿真間或離散時間的動態(tài)系統(tǒng)建模、分析和仿真的核心。的核心。Real-Time WorkshopReal-Time Workshop是一種實時代碼生成工具,它能夠根據(jù)是一種實時代碼生成工具,它能夠根據(jù)SimulinkSimulink模型生成程序源代碼,并打包、編譯所生成的源代碼生模型生成程序源代碼,并打包、編譯所生成的源代碼生成實時應用程序。成實時應用程序。 從現(xiàn)有的從現(xiàn)有的S

29、imulink Simulink 和和StateflowStateflow自動生成自動生成C C語言程序代碼的功能、語言程序代碼的功能、定點運算模塊集(定點運算模塊集(Fixed-point BlocksetFixed-point Blockset)與)與C C語言程序代碼到語言程序代碼到VHDLVHDL(Very High Speed Integrated Circuit Hardware Description LanguageVery High Speed Integrated Circuit Hardware Description Language,一,一種標準的硬件電路設計語言種標

30、準的硬件電路設計語言 )的自動轉換功能,可以看出,高級的)的自動轉換功能,可以看出,高級的系統(tǒng)仿真或低級的芯片算法設計,都可用系統(tǒng)仿真或低級的芯片算法設計,都可用MATLABMATLAB、SimulinkSimulink、StateflowStateflow及相關的工具箱來完成。及相關的工具箱來完成。StateflowStateflow是基于有限狀態(tài)機理論針對復雜是基于有限狀態(tài)機理論針對復雜的事件驅動系統(tǒng)進行建模、仿真的工具。的事件驅動系統(tǒng)進行建模、仿真的工具。Stateflow CoderStateflow Coder是基于是基于StateflowStateflow狀態(tài)圖生成狀態(tài)圖生成高效、

31、優(yōu)化的程序代碼。高效、優(yōu)化的程序代碼。圍繞著圍繞著SimulinkSimulink仿真核心所開發(fā)的應用程序包,仿真核心所開發(fā)的應用程序包,稱為模塊集(稱為模塊集(BlocksetsBlocksets),MATLAB,MATLAB產品提供許多產品提供許多專用模塊集,如專用模塊集,如Communication BlocksetCommunication Blockset、DSP DSP BlocksetBlockset、SimPowerSystem BlocksetSimPowerSystem Blockset、Signal Signal Processing BlocksetProcessing

32、 Blockset等,詳見等,詳見MATLABMATLAB在線幫助文在線幫助文檔。檔。MATLABMATLAB是是MATLABMATLAB產品家族的計算產品家族的計算核心與基礎,是集高性能數(shù)值計算與核心與基礎,是集高性能數(shù)值計算與數(shù)據(jù)可視化于一體的高效編程語言。數(shù)據(jù)可視化于一體的高效編程語言。 2022-5-1515 Matlab Programing1.3 MATLAB1.3 MATLAB編程語言的特點編程語言的特點 語法規(guī)則簡單語法規(guī)則簡單。尤其內定的編程規(guī)則,與其他編程語言(如尤其內定的編程規(guī)則,與其他編程語言(如C C、FortranFortran等)相比更接等)相比更接近于常規(guī)數(shù)學表

33、示。對于數(shù)組變量的使用,不需類型聲明,無需事先申請內存空間。近于常規(guī)數(shù)學表示。對于數(shù)組變量的使用,不需類型聲明,無需事先申請內存空間。MATLABMATLAB語言主要有以下幾個特點:語言主要有以下幾個特點: MATLAB基本的語言環(huán)境提供了數(shù)以千計的計算函數(shù)基本的語言環(huán)境提供了數(shù)以千計的計算函數(shù),極大的提高了用戶的編程效率。極大的提高了用戶的編程效率。如,一個如,一個fftfft函數(shù)即可完成對指定數(shù)據(jù)的快速傅里葉變換,這一任務如果用函數(shù)即可完成對指定數(shù)據(jù)的快速傅里葉變換,這一任務如果用C C語言來編程語言來編程實現(xiàn)的話,至少要用幾十條實現(xiàn)的話,至少要用幾十條C C語言才能完成。語言才能完成。

34、因此,因此,MATLABMATLAB是一個簡單易用、功能強大的高效編程語言。是一個簡單易用、功能強大的高效編程語言。 平臺無關性(可移植性)。平臺無關性(可移植性)。MATLABMATLAB軟件可以運行在很多不同的計算機系統(tǒng)平臺上,如軟件可以運行在很多不同的計算機系統(tǒng)平臺上,如Windows Me/NT/2000/XPWindows Me/NT/2000/XP、很多不同版本的、很多不同版本的UNIXUNIX以及以及LinuxLinux。無論你在哪一個平臺上編。無論你在哪一個平臺上編寫的程序都可以運行在其它平臺上,對于寫的程序都可以運行在其它平臺上,對于MATLABMATLAB數(shù)據(jù)文件也一樣,是

35、平臺無關的。極數(shù)據(jù)文件也一樣,是平臺無關的。極大保護了用戶的勞動、方便了用戶。其繪圖功能也是平臺無關的。無論任何系統(tǒng)平臺,大保護了用戶的勞動、方便了用戶。其繪圖功能也是平臺無關的。無論任何系統(tǒng)平臺,只要只要MATLABMATLAB能夠運行,其圖形功能命令就能正常運行。能夠運行,其圖形功能命令就能正常運行。 MATLAB是一種腳本式是一種腳本式(scripted)的解釋型語言。的解釋型語言。無論是命令、函數(shù)或變量,只要無論是命令、函數(shù)或變量,只要在命令窗口的提示符下鍵入,并在命令窗口的提示符下鍵入,并“回車(回車(EnterEnter)”,MATLABMATLAB都予以解釋執(zhí)行。都予以解釋執(zhí)行。

36、 2022-5-1516 Matlab Programing功能強大功能強大數(shù)值運算優(yōu)勢數(shù)值運算優(yōu)勢符號運算優(yōu)勢符號運算優(yōu)勢(Maple)(Maple)強大的強大的2D2D、3D3D數(shù)據(jù)可視化功能數(shù)據(jù)可視化功能許多具有算法自適應能力的功能函數(shù)許多具有算法自適應能力的功能函數(shù) 2022-5-1517 Matlab Programing語言簡單、內涵豐富語言簡單、內涵豐富語言及其書寫形式非常接近于常規(guī)數(shù)學書寫形式;語言及其書寫形式非常接近于常規(guī)數(shù)學書寫形式;其操作和功能函數(shù)指令就是常用的計算機和數(shù)學書上的一些簡單英文其操作和功能函數(shù)指令就是常用的計算機和數(shù)學書上的一些簡單英文單詞表達的,如:單詞表

37、達的,如:helphelp、clearclear等;等;完備的幫助系統(tǒng),易學易用。完備的幫助系統(tǒng),易學易用。擴充能力、可開發(fā)能力較強擴充能力、可開發(fā)能力較強MATLABMATLAB完全成了一個開放的系統(tǒng)完全成了一個開放的系統(tǒng)用戶可以開發(fā)自己的工具箱用戶可以開發(fā)自己的工具箱可以方便地與可以方便地與FortranFortran、C C等語言接口等語言接口 編程易、效率高編程易、效率高 MatlabMatlab以數(shù)組為基本計算單元以數(shù)組為基本計算單元具有大量的算法優(yōu)化的功能函數(shù)具有大量的算法優(yōu)化的功能函數(shù)第2章Matlab的桌面環(huán)境及入門知識概述的桌面環(huán)境及入門知識概述2 MATLAB2 MATLA

38、B的桌面環(huán)境及入門知識的桌面環(huán)境及入門知識 2022-5-1519 Matlab Programing啟動與退出啟動與退出MATLAB MATLAB 命令窗口及使用命令窗口及使用數(shù)值表示、變量、表達式數(shù)值表示、變量、表達式命令歷史窗口命令歷史窗口工作空間工作空間獲取在線幫助獲取在線幫助2.1 2.1 啟動與退出啟動與退出MATLAB MATLAB 2022-5-1520 Matlab Programing啟動啟動MATLAB直接用鼠標雙擊桌面上直接用鼠標雙擊桌面上MATLABR2012a圖標圖標或或Windows桌面的桌面的“開始開始”“所有程序所有程序”“MATLABR2012a” “MAT

39、LABR2012a”。退出退出MATLAB關閉關閉MATLAB桌面桌面在命令窗口執(zhí)行在命令窗口執(zhí)行quit或或exit命令命令MATLAB缺省桌面(見下頁)缺省桌面(見下頁) 2022-5-1521 Matlab Programing菜單欄菜單欄工具欄工具欄文件編輯窗口文件編輯窗口工作空間工作空間歷史命令歷史命令窗口窗口Start Start 菜單菜單命令窗口命令窗口命令提示符命令提示符2.1 2.1 啟動與退出啟動與退出MATLAB MATLAB 2.1 2.1 啟動與退出啟動與退出MATLAB MATLAB 2.2 2.2 命令窗口的使用命令窗口的使用激活命令窗口。激活命令窗口?!啊?與閃

40、爍的光標一起表明系統(tǒng)就緒,等待輸與閃爍的光標一起表明系統(tǒng)就緒,等待輸入。入。命令窗口脫離命令窗口脫離MATLAB桌面。桌面。 簡單計算簡單計算【例例2.2-1】計算計算(1)在)在MATLAB命令窗口輸入命令窗口輸入 以下內容:以下內容:(12+2*(7-4)/32(2)按)按【Enter】鍵,指令執(zhí)行。鍵,指令執(zhí)行。(3)返回的計算結果:)返回的計算結果:ans= 2 2122743 2022-5-1522 Matlab Programing2.2 2.2 命令窗口的使用命令窗口的使用 2022-5-1523 Matlab Programing說明說明l在命令窗口在命令窗口【Enter】鍵提

41、交命令執(zhí)行。鍵提交命令執(zhí)行。lMatlab所用運算符(如所用運算符(如+、-、等)是各種計算等)是各種計算程序中常見的。程序中常見的。l計算結果中的計算結果中的“ans”是英文是英文“answer”的一種縮寫,的一種縮寫,其含義就是其含義就是“運算答案運算答案”。ans是是Matlab的一個預的一個預定義變量。定義變量。2.2 2.2 命令窗口的使用命令窗口的使用 2022-5-1524 Matlab Programing簡單計算簡單計算 【例例2.2-2】計算計算sin(45 ? )sin(45*pi/180)lMatalb中正弦函數(shù)中正弦函數(shù)sin就是常見的正弦函數(shù)。就是常見的正弦函數(shù)。l

42、它的參數(shù)值是以它的參數(shù)值是以“弧度弧度”為單位的。為單位的。lpi也是也是Matalb的預定義變量。的預定義變量。lpi=3.14159lMatlab對字母大小寫是敏感的。對字母大小寫是敏感的。sqrt(2*exp(4.92+0.5)+1)lM a t a l b 中 開 平 方中 開 平 方 sqrt(x),是英文,是英文square root的縮寫的縮寫 。lM a t a l b 中 指 數(shù) 函 數(shù)中 指 數(shù) 函 數(shù)exp(x),常見的表達方,常見的表達方式。式。ans= 0.7071ans= 21.2781【例例2.2-3】計算計算 的值,其中的值,其中x=4.92。)(12e0.5x

43、2.2 2.2 命令窗口的使用命令窗口的使用 2022-5-1525 Matlab Programing7“clc”清除窗口顯示內容的命令。清除窗口顯示內容的命令。y=2*sin(0.3*pi)/(1+sqrt(5)y=y= 0.5000 0.5000y=2*cos(0.3*pi)/(1+sqrt(5)y= 0.3633%命令行編輯命令行編輯l “”鍵調回已鍵調回已輸入過命令。輸入過命令。l 修改。修改。51)3 . 0sin(2y【例例2.2-4】 計算計算 的值。的值?!纠?.2-5】 計算計算 的值的值。51)3 . 0sin(2y2.2 2.2 命令窗口的使用命令窗口的使用 2022

44、-5-1526 Matlab Programing【例例2.2-6】計算半徑為計算半徑為5.2m的圓的周長和面積。的圓的周長和面積。radius=5.2; %圓的半徑圓的半徑area=pi*5.22, circle_len=2*pi*5.2area = 84.9487circle_len = 32.6726l以上兩例,命令行中用到了等以上兩例,命令行中用到了等號號“=”。l計算結果不再賦給計算結果不再賦給“ans”,而,而是賦給用戶指定的變量是賦給用戶指定的變量y、area、circle_len。l無論是預定義變量還是用戶自無論是預定義變量還是用戶自定義變量都被存儲在系統(tǒng)的工定義變量都被存儲在

45、系統(tǒng)的工作空間內,即系統(tǒng)定義的一個作空間內,即系統(tǒng)定義的一個存儲窗口變量的內存空間。存儲窗口變量的內存空間。lWho、whos命令用來顯示工命令用來顯示工作空間的變量作空間的變量lclear命令用來清除工作空間的命令用來清除工作空間的變量。變量。2.2 2.2 命令窗口的使用命令窗口的使用 2022-5-1527 Matlab ProgramingwhowhosYour variables are:ans circle_len y area radius Name Size Bytes Class ans 1x1 8 double array area 1x1 8 double array c

46、ircle_len 1x1 8 double array radius 1x1 8 double array y 1x1 8 double arrayGrand total is 5 elements using 40 bytes2.2 2.2 命令窗口的使用命令窗口的使用 2022-5-1528 Matlab Programingclear ywhoYour variables are:ans circle_len area radius clear ans areawhosYour variables are:Name Size Bytes Classcircle_len 1x1 8 do

47、uble arrayradius 1x1 8 double arrayGrand total is 2 elements using 16 bytes2.2 2.2 命令窗口的使用命令窗口的使用 2022-5-1529 Matlab Programing數(shù)值顯示格式設置數(shù)值顯示格式設置缺省顯示格式:簡潔的短(缺省顯示格式:簡潔的短(short gshort g)格式)格式窗口命令及語法格式:窗口命令及語法格式:format format 顯示格式關鍵字顯示格式關鍵字 如:如:format long %15format long %15位數(shù)字顯示位數(shù)字顯示常見通用命令常見通用命令命令命令含義含義

48、clcclc清除命令窗口的顯示內容清除命令窗口的顯示內容clearclear清除清除MatlabMatlab工作空間中保存的變量工作空間中保存的變量whowho或或whoswhos顯示顯示MatlabMatlab工作空間中的變量信息工作空間中的變量信息dirdir顯示當前工作目錄的文件和子目錄清單顯示當前工作目錄的文件和子目錄清單cdcd 顯示或設置當前工作目錄顯示或設置當前工作目錄typetype 顯示指定顯示指定m m文件的內容文件的內容helphelp或或docdoc獲取在線幫助獲取在線幫助quitquit或或exitexit關閉關閉/ /推出推出MATALBMATALB 2022-5-

49、1530 Matlab Programing工作空間工作空間2.3 2.3 工作空間工作空間2.3 2.3 工作空間工作空間 2022-5-1531 Matlab Programing查看工作空間內存變量,可以由查看工作空間內存變量,可以由whowho、whos whos 。命名新變量。命名新變量。修改變量名修改變量名刪除變量刪除變量繪圖繪圖保存變量數(shù)據(jù)保存變量數(shù)據(jù)裝入數(shù)據(jù)裝入數(shù)據(jù)2.3 2.3 工作空間工作空間 2022-5-1531 Matlab Programing查看工作空間內存變量,可以由查看工作空間內存變量,可以由whowho、whos whos 。2.3 2.3 工作空間工作空間

50、 2022-5-1531 Matlab Programing命名新變量。命名新變量。修改變量名修改變量名刪除變量刪除變量2.3 2.3 工作空間工作空間 2022-5-1531 Matlab Programing繪圖繪圖2.3 2.3 工作空間工作空間 2022-5-1531 Matlab Programing保存變量數(shù)據(jù)保存變量數(shù)據(jù)裝入數(shù)據(jù)裝入數(shù)據(jù)2.4 2.4 歷史窗口歷史窗口 2022-5-1532 Matlab Programingn歷史窗口:歷史窗口:n首先首先記錄每次啟動時間記錄每次啟動時間n并并記錄在命令窗口輸入命令,記錄在命令窗口輸入命令,此次運行期間,此次運行期間,輸入的所有

51、命令被記錄為一組,并以此次啟動時輸入的所有命令被記錄為一組,并以此次啟動時間為標志。間為標志。n使用歷史窗口:使用歷史窗口:n可以查看命令窗口輸入過的命令或語句可以查看命令窗口輸入過的命令或語句n可以選擇一條或多條命令執(zhí)行拷貝、執(zhí)行、創(chuàng)可以選擇一條或多條命令執(zhí)行拷貝、執(zhí)行、創(chuàng)建建MM文件等。文件等。 要清除歷史記錄,可以選擇要清除歷史記錄,可以選擇EditEdit菜單中的菜單中的Clear Command Clear Command History History 命令命令2.4 2.4 歷史窗口歷史窗口 2022-5-1532 Matlab Programing 2022-5-1533 Ma

52、tlab Programing2.5 2.5 當前目錄窗口和搜索路徑當前目錄窗口和搜索路徑當前目錄窗口:當前目錄窗口:指指Matlab運行時的工作目錄。運行時的工作目錄。l只有在當前目錄和搜索路徑下的文件、函數(shù)才可以被只有在當前目錄和搜索路徑下的文件、函數(shù)才可以被運行和調用。運行和調用。l如果沒有特殊指明,數(shù)據(jù)文件也將存放在當前目錄下;如果沒有特殊指明,數(shù)據(jù)文件也將存放在當前目錄下;l用戶可以將自己的工作目錄設置成當前目錄,從而使用戶可以將自己的工作目錄設置成當前目錄,從而使得所有操作都在當前目錄中進行。得所有操作都在當前目錄中進行。 2022-5-1534 Matlab Programing

53、搜索路徑:搜索路徑:指指Matlab執(zhí)行過程中對變量、函數(shù)和文件執(zhí)行過程中對變量、函數(shù)和文件進行搜索的路徑。進行搜索的路徑。l在在File菜單中選擇菜單中選擇Set Path命令或在命令窗口輸入命令或在命令窗口輸入pathtool命令,出現(xiàn)搜索路徑設置對話框:命令,出現(xiàn)搜索路徑設置對話框:!修改完搜索路徑后,!修改完搜索路徑后,需要進行保存。需要進行保存。 2022-5-1534 Matlab Programing2.5 2.5 當前目錄窗口和搜索路徑當前目錄窗口和搜索路徑2.6 2.6 獲取在線幫助獲取在線幫助 2022-5-1535 Matlab ProgramingMATLAB提供的幫助

54、信息有兩類提供的幫助信息有兩類簡單純文本幫助信息簡單純文本幫助信息helplookfor(條件比較寬松)例:(條件比較寬松)例:inverse窗口式綜合幫助信息(文字、公式、圖形)窗口式綜合幫助信息(文字、公式、圖形)dochelpwin【功能演示【功能演示-1 -1】 2022-5-1536 Matlab Programing求方程求方程xxxx53223719130的全部根。的全部根。p = 2,0,-3,71,-9,13;建立多項式系數(shù)向量建立多項式系數(shù)向量x = roots(p);求根求根x =-3.4914 1.6863 + 2.6947i 1.6863 - 2.6947i 0.05

55、94 + 0.4251i 0.0594 - 0.4251i【功能演示【功能演示-2 -2】求解線性方程組】求解線性方程組 2022-5-1537 Matlab Programingxyzxyzxyz 2328234453923a = 2,3,-1;8,2,3;45,3,9;建立系數(shù)矩陣建立系數(shù)矩陣ab = 2;4;23;建立列向量建立列向量bx = inv(a)*bx = 0.5531 0.2051 -0.2784 2022-5-1538 Matlab Programing符號計算符號計算syms x y z 建立符號變量建立符號變量x,y,z=solve(2*x+3*y-z-2,8*x+2*

56、y+3*z-4,45*x+3*y+9*z-23)x = 151/273 y = 8/39 z = -76/273【功能演示【功能演示-3 -3】求解定積分】求解定積分 求解求解 I=quad(x.*log(1+x),0,1)ans = 0.250或或syms xnt(x*log(1+x),0,1)ans = 1/4 2022-5-1539 Matlab Programingln()xx dx 101【功能演示【功能演示-4 -4】多項式曲線擬合】多項式曲線擬合考慮如下考慮如下 x-y 一組實驗數(shù)據(jù):一組實驗數(shù)據(jù):x=1, 2, 3, 4, 5, 6, 7, 8, 9, 10y=1.2, 3,

57、4, 4, 5, 4.7, 5, 5.2, 6, 7.2注:注:一次多項式擬合:一次多項式擬合:p1 = polyfit(x,y,1)三次多項式擬合三次多項式擬合:p3 = polyfit(x,y,3)plot 原始數(shù)據(jù)、一次擬合曲線和三次擬合曲線原始數(shù)據(jù)、一次擬合曲線和三次擬合曲線x2=1:0.1:10;y1=polyval(p1,x2)y3=polyval(p3,x2)plot( x, y, *, x2, y1, :, x2, y3)321205(25)y xxxIn MAByTLA 2022-5-1540 Matlab Programing 2022-5-1541 Matlab Prog

58、raming擬合曲線圖擬合曲線圖由圖可見,三次擬合結果較好。由圖可見,三次擬合結果較好。 2022-5-1541 Matlab Programing復習復習安裝、調試安裝、調試 Matlab 環(huán)境環(huán)境熟悉熟悉Matlab開發(fā)環(huán)境開發(fā)環(huán)境www. 第3章Matlab數(shù)據(jù)及其運算數(shù)據(jù)及其運算3 Matlab3 Matlab數(shù)據(jù)及其運算數(shù)據(jù)及其運算 2022-5-1545 Matlab Programing數(shù)值表示數(shù)值表示變量變量表達式表達式程序控制結構程序控制結構MM文件文件3.1 3.1 數(shù)值表示、變量及表達式數(shù)值表示、變量及表達式 2022-5-1546 Matlab Programing數(shù)值

59、的記述數(shù)值的記述 MatlabMatlab的數(shù)只采用習慣的十進制表示,可以帶小數(shù)點和負號的數(shù)只采用習慣的十進制表示,可以帶小數(shù)點和負號; ;其缺省的數(shù)據(jù)類型為雙精度浮點型(其缺省的數(shù)據(jù)類型為雙精度浮點型(doubledouble)。)。 例如:例如:3 -10 0.001 1.3e10 1.256e-63 -10 0.001 1.3e10 1.256e-6變量命令規(guī)則變量命令規(guī)則l變量名、函數(shù)名對字母的大小寫是敏感的。如變量名、函數(shù)名對字母的大小寫是敏感的。如myVarmyVar與與myvarmyvar表示兩個不同的變量。表示兩個不同的變量。l變量名變量名第一個字母必須是第一個字母必須是英文字

60、母。英文字母。l變量名可以包含變量名可以包含英文字母、下劃線和數(shù)字。英文字母、下劃線和數(shù)字。l變量名變量名不能包含空格、標點。不能包含空格、標點。l變量名最多可包含變量名最多可包含6363個個字符(字符(6.56.5及以后的版本)。及以后的版本)。3.1 3.1 數(shù)值表示、變量及表達式數(shù)值表示、變量及表達式 2022-5-1547 Matlab ProgramingMatlabMatlab預定義的變量預定義的變量變量名變量名意義意義ans最近的計算結果的變量名最近的計算結果的變量名epsMATLAB定義的正的極小值定義的正的極小值=2.2204e-16pi圓周率圓周率inf值,無限大值,無限大

溫馨提示

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

評論

0/150

提交評論