- MATLAB 2020 從入門到精通
- 黃少羅 閆聰聰編著
- 2510字
- 2021-08-12 17:18:21
1.1 MATLAB概述
MATLAB是以線性代數軟件包LINPACK和特征值計算軟件包EISPACK中的子程序為基礎發展起來的一種開放式程序設計語言,是一種高性能的工程計算語言,其基本的數據單位是沒有維數限制的矩陣。
1.1.1 MATLAB的發展歷程
20世紀70年代中期,Cleve Moler博士及其同事在美國國家科學基金的資助下開發了調用EISPACK和LINPACK的FORTRAN子程序庫。EISPACK是求解特征值的FOTRAN程序庫,LINPACK是求解線性方程的程序庫。在當時,這兩個程序庫代表了矩陣運算的最高水平。70年代后期,時任美國新墨西哥大學計算機科學系主任的Cleve Moler教授在給學生講授線性代數課程時,想教給學生使用EISPACK和LINPACK程序庫,但他發現學生用FORTRAN編寫接口程序很費時。出于減輕學生編程負擔的目的,他為學生設計了一組調用LINPACK和EISPACK庫程序的“通俗易用”的接口,這便是處于萌芽狀態的MATLAB。在此后的數年里,MATLAB在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳。
1983年春天,Cleve Moler教授到斯坦福大學講學,他所講授的關于MATLAB的內容深深地吸引了工程師John Little。John Little敏銳地覺察到MATLAB在工程領域的廣闊前景,同年,他和Cleve Moler、Steve Bangert一起用C語言開發了第二代專業版MATLAB。這一代MATLAB語言同時具備了數值計算和數據圖示化的功能。
1984年,Cleve Moler和John Little成立了MathWorks公司,正式把MATLAB推向市場,并繼續進行MATLAB的研究和開發。從這時起,MATLAB的內核采用C語言編寫。
MATLAB以商品形式出現后,僅短短幾年,就以其良好的開放性和可靠性將原先控制領域里的封閉式軟件包(如UMIST、LUND、SIMNON、KEDDC等)紛紛淘汰,而改以MATLAB為平臺加以重建。20世紀90年代初期,MathWorks公司順應多功能需求的潮流,在其卓越數值計算和圖示能力的基礎上又率先拓展了符號計算、文字處理、可視化建模和實時控制能力,開發了滿足多學科要求的新一代產品。經過多年的發展,在國際上30多個數學類科技應用軟件中,MATLAB已經占據了數值軟件市場的主導地位。
MathWorks公司于1993年推出MATLAB 4.0版本,從此告別DOS版。
1997年春,MATLAB 5.0版問世,緊接著是5.1、5.2,以及1999年春的5.3版。2003年,MATLAB 7.0版問世。
2006年開始,MATLAB分別在每年的3月和9月進行兩次產品發布,每次發布都涵蓋產品家族中的所有模塊,包含已有產品的新特性和Bug修訂,以及新產品的發布。其中,3月發布的版本被稱為“a”,9月發布的版本被稱為“b”,2006年的兩個版本分別是R2006a和R2006b。
2012年,MathWorks推出了MATLAB 7.14版,即MATLAB R2012a版。
2018年3月,MathWorks正式發布了R2018a版MATLAB和Simulink產品系列的Release2018(R2018)版本。
2020年3月,MathWorks正式發布了R2020a版MATLAB(以下簡稱MATLAB 2020)和Simulink產品系列的Release 2020(R2020)版本。
1.1.2 MATLAB系統
MATLAB系統主要包括以下五個部分。
1)桌面工具和開發環境:MATLAB由一系列工具組成,這些工具大部分是圖形用戶界面,方便用戶使用MATLAB的函數和文件,包括MATLAB桌面和命令窗口、編輯器和調試器、代碼分析器和用于瀏覽幫助、工作空間、文件的瀏覽器。
2)數學函數庫:MATLAB數學函數庫包括了大量的計算算法,從初等函數(如加法、正弦、余弦等)到復雜的高等函數(如矩陣求逆、矩陣特征值、貝塞爾函數和快速傅里葉變換等)。
3)語言:MATLAB語言是一種高級的基于矩陣/數組的語言,具有程序流控制、函數、數據結構、輸入/輸出和面向對象編程等特色。用戶可以在命令窗口中將輸入語句與執行命令同步,以迅速創立快速拋棄型程序,也可以先編寫一個較大的復雜的M文件后再一起運行,以創立完整的大型應用程序。
4)圖形處理:MATLAB具有方便的數據可視化功能,以將向量和矩陣用圖形表現出來,并且可以對圖形進行標注和打印。它的高層次作圖包括二維和三維的可視化、圖像處理、動畫和表達式作圖。低層次作圖包括完全定制圖形的外觀,以及建立基于用戶的MATLAB應用程序的完整圖形用戶界面。
5)外部接口:外部接口是一個使MATLAB語言能與C、FORTRAN等其他高級編程語言進行交互的函數庫,它包括從MATLAB中調用程序(動態鏈接)、調用MATLAB為計算引擎和讀寫mat文件的設備。
1.1.3 MATLAB語言的特點
MATLAB提供了一種交互式的高級編程語言——M語言,用戶可以利用M語言編寫腳本或用函數文件來實現自己的算法。
一種語言之所以能夠如此迅速地普及,顯示出如此旺盛的生命力,是由于它有著不同于其他語言的特點,正如同FORTRAN和C等高級語言使人們擺脫了需要直接對計算機硬件資源進行操作一樣,被稱為第四代計算機語言的MATLAB,利用其豐富的函數資源,把編程人員從煩瑣的程序代碼中解放了出來。MATLAB最突出的特點就是簡潔,它用更直觀的、符合人們思維習慣的代碼,代替了C語言和FORTRAN語言的冗長代碼。MATLAB給用戶帶來的是最直觀、最簡潔的程序開發環境。下面簡要介紹一下MATLAB的主要特點。
1)語言簡潔緊湊,庫函數極其豐富,使用方便靈活。MATLAB程序書寫形式自由,利用豐富的庫函數避開了繁雜的子程序編程任務,壓縮了一切不必要的編程工作。由于庫函數都由本領域的專家編寫,用戶不必擔心函數的可靠性問題。可以說,用MATLAB進行科技開發就是站在專家的肩膀上搞科研。
利用FORTRAN或C語言去編寫程序,尤其是當涉及矩陣運算和畫圖時,編程會很麻煩。例如,用FORTRAN和C這樣的高級語言編寫求解一個線性代數方程的程序,至少需要400多行代碼,調試這種代碼達幾百行的計算程序很困難,而使用MATLAB編寫這樣一個程序則很直觀簡潔。
MATLAB的程序極其簡短,更難能可貴的是,MATLAB甚至具有一定的智能效能,比如解一些方程時,MATLAB會根據矩陣的特性選擇方程的求解方法。
2)運算符豐富。MATLAB是用C語言編寫的,它提供了和C語言幾乎一樣多的運算符,靈活使用MATLAB的運算符將使程序變得極為簡短。
3)MATLAB既具有結構化的控制語句(如for循環、while循環、break語句和if語句),又有面向對象編程的特性。
4)程序設計自由度大。例如,在MATLAB里,用戶無需對矩陣預定義就可使用。
5)程序的可移植性很好,基本上不做修改就可以在各種型號的計算機和操作系統上運行。
6)圖形功能強大。在FORTRAN和C語言里,繪圖都很不容易,但在MATLAB里,數據的可視化非常簡單。MATLAB還具有較強的編輯圖形界面的能力。
7)與其他高級程序相比,程序的執行速度較慢。由于MATLAB的程序不用編譯等預處理,也不生成可執行文件,程序為解釋執行,所以程序的執行速度較慢。
8)擁有功能強大的工具箱。MATLAB包含兩個部分:核心部分和各種可選的工具箱。核心部分中有數百個核心內部函數;工具箱又分為功能性工具箱和學科性工具箱兩類。這些工具箱都是由該領域內學術水平很高的專家編寫的,所以用戶可以無須編寫自己學科范圍內的基礎程序,而直接進行高、精、尖的研究。
9)源程序具有開放性。
- iOS Game Programming Cookbook
- Learning Real-time Processing with Spark Streaming
- Visual Basic程序開發(學習筆記)
- The Computer Vision Workshop
- Full-Stack React Projects
- Responsive Web Design by Example
- PhoneGap:Beginner's Guide(Third Edition)
- C++從入門到精通(第5版)
- Python從入門到精通
- Bootstrap for Rails
- C++ Application Development with Code:Blocks
- Learning Concurrency in Python
- JavaEE架構與程序設計
- Mastering Drupal 8
- 深入實踐C++模板編程