- MATLAB 2020 GUI程序設計從入門到精通
- 李星新 黃熹編著
- 2510字
- 2021-11-12 10:25:18
1.1 MATLAB概述
在數學類科技應用軟件中,MATLAB的數值計算能力首屈一指,與Mathematica、Maple并稱為三大數學軟件。MATLAB可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通信、圖像處理、信號檢測、金融建模設計與分析等領域。
1.1.1 MATLAB系統的發展歷程
在20世紀70年代中期,美國新墨西哥大學計算機科學系的Cleve Moler博士和他的同事在美國國家科學基金的資助下研究開發了調用LINPACK和EISPACK的FORTRAN子程序庫。LINPACK是解線性方程的FORTRAN程序庫,EISPACK則是解特征值問題的程序庫。這兩個程序庫代表著當時矩陣計算的最高水平。到了20世紀70年代后期,時任美國新墨西哥大學計算機科學系主任的Cleve Moler教授在給學生開設線性代數課程的時候,利用業余時間為學生編寫了使用方便的LINPACK和EISPACK的接口程序,取名為MATLAB。在此后的數年里,MATLAB在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳,MATLAB也成了應用數學界的術語。
1983年早春,Cleve Moler到斯坦福大學訪問,身為工程師的John Little意識到MATLAB潛在的廣闊應用領域,覺得其應該在工程計算方面也有所作為。同年,他與Cleve Moler及Steve Bangert合作開發了第二代專業版MATLAB。從這一代開始,MATLAB的核心采用C語言編寫,也是從這一代開始,MATLAB不僅具有數值計算功能,而且具有了數據可視化功能。
1984年,MathWorks公司成立,把MATLAB推向市場,并繼續MATLAB的研制和開發。MATLAB在市場上的出現為各國科學家開發本學科相關軟件提供了基礎。例如,在MATLAB問世不久后,原來在控制領域的一些封閉式軟件包(如英國的UMIST,瑞典的LUND和SIMNON,德國的KEDDC)就紛紛被淘汰,而改以MATLAB為平臺加以重建。
到20世紀90年代初期,在國際上的30多個數學類科技應用軟件中,MATLAB在數值計算方面獨占鰲頭,而Mathematica和Maple則分居符號計算軟件的前兩名。
1993年,MATLAB的第一個Windows版本問世。同年,支持Windows 3. x的具有劃時代意義的MATLAB 4.0版本推出。與以前的版本相比,MATLAB 4.0作了很大改進,特別是增加了Simu-link、Control、Neural Network、Optimization、Signal Processing、Spline、Robust Control等工具箱,使得MATLAB的應用范圍越來越廣。
同年,MathWorks公司又推出了MATLAB 4.1版本,首次開發了Symbolic Math符號運算工具箱。它的升級版本MATLAB 4.2c在用戶中得到廣泛的應用。
1997年夏,MathWorks公司推出了Windows 95下的MATLAB 5.0和Simulink 2.0版本。該版本在繼承MATLAB 4.2c和Simulink 1.3版本功能的基礎上,實現了真正的32位運作,數值計算更快,圖形表現更豐富有效,編程更簡潔直觀,用戶界面十分友好。
2000年下半年,MathWorks公司推出了MATLAB 6.0(R12)的試用版,并于2001年推出了正式版。緊接著,2002年推出了MATLAB 6.5(R13),并升級Simulink到5.0版本。
2004年秋,MathWorks公司推出了MATLAB 7.0(R14)Service Pack1,新的版本在原版本的基礎上進行了大幅改進,同時升級了很多工具箱,使得MATLAB功能更強,應用更簡便。
從2006年開始,MATLAB分別在每年的3月和9月進行兩次產品發布,每次發布都涵蓋產品家族中的所有模塊,包含已有產品的新特性和bug修訂,以及新產品的發布。其中,3月發布的版本被稱為“a”,9月發布的版本被稱為“b”,如2006年的兩個版本分別是R2006a和R2006b。值得一提的是,在2006年3月1日發布的R2006a版本中,增加了兩個新產品模塊(Builder for.net和SimHydraulics),并增加了對64位Windows的支持。其中Builder for.net也就是. net工具箱,它擴展了MATLAB Compiler的功能,集成了MATLAB Builder for COM的功能,可以將MATLAB函數打包,使網絡程序員可以通過C#、VB. NET等語言訪問這些函數,并將源自MATLAB函數的錯誤作為一個標準的管理異常來處理。
2020年3月,MathWorks公司正式發布了R2020a版MATLAB(以下簡稱MATLAB 2020)和Simulink產品系列的Release 2020(R2020)版本。
1.1.2 MATLAB的特點
MATLAB自誕生之日起,就以其強大的功能和良好的開放性在科學計算軟件中獨占鰲頭。學會MATLAB可以方便地處理諸如矩陣變換及運算、多項式運算、微積分運算、線性與非線性方程求解、常微分方程求解、偏微分方程求解、插值與擬合、統計及優化等問題。
在進行數學計算時,最難處理的就是算法的選擇,這個問題可以在MATLAB面前迎刃而解。MATLAB中有許多功能函數都帶有算法的自適應能力,且算法先進,解決了用戶的后顧之憂,同時也大大彌補了MATLAB程序因為非可執行文件而影響其速度的缺陷。另外,MATLAB提供了一套完善的圖形可視化功能,為用戶展示自己的計算結果提供了廣闊的空間。圖1-1~圖1-3就是用MATLAB繪制的地球二維和三維圖形。
無論一種語言的功能有多么強大,如果語言本身就非常難理解,那么它絕對不是成功的語言。而MATLAB是成功的,它允許用戶以數學形式的語言編寫程序,比BASIC、FORTRAN和C等語言更接近書寫計算公式的思維方式。

圖1-1 地球輪廓線示意圖

圖1-2 地球二維平面圖
MATLAB能發展到今天這種程度,它的可擴充性和可開發性起著不可估量的作用。MATLAB本身就像一個解釋系統,以一種解釋執行的方式對其中的函數程序進行執行。這樣的最大好處是MAT-LAB完全成為一個開放的系統,用戶可以方便地查看函數的源程序,也可以方便地開發自己的程序,甚至創建自己的工具箱。另外,MATLAB還可以方便地設置與FORTRAN、C等語言接口,以充分利用各種資源。
任何文字處理程序都能對MATLAB進行編寫和修改,從而使得程序易于調試,人機交互性強。

圖1-3 地球三維表現圖
1.1.3 MATLAB應用領域
MATLAB將高性能的數值計算、可視化和編程集成在一個易用的開放式環境中,在此環境下,用戶可以按照符合其思維習慣的方式和熟悉的數學表達形式書寫程序,并且可以非常容易地對其功能進行擴充。除具備卓越的數值計算能力之外,MATLAB還具有專業水平的符號計算和文字處理能力;集成了2D和3D圖形功能,可完成可視化建模仿真和實時控制等功能。其典型的應用主要包括如下幾個方面。
◆數值分析和計算。
◆算法開發。
◆數據采集。
◆系統建模、仿真和原型化。
◆數據分析、探索和可視化。
◆工程和科學繪圖。
◆數字圖像處理。
◆應用軟件開發,包括圖形用戶界面的建立。
MATLAB Compiler是一種編譯工具,它能夠將MATLAB編寫的函數文件生成函數庫或可執行文件COM組件等,以提供給C++、C#等其他高級語言進行調用,由此擴展MATLAB的應用范圍,將MATLAB的開發效率與其他高級語言的運行效率結合起來,取長補短,豐富程序開發的手段。
Simulink是基于MATLAB的可視化設計環境,可以用來對各種系統進行建模、分析和仿真。它的建模范圍包括任何能夠使用數學來描述的系統,如航空動力學系統、航天控制制導系統、通信系統等。Simulink提供了利用鼠標拖放的方法建立系統框圖模型的圖形界面,還提供了豐富的功能模塊,利用它幾乎可以不書寫代碼就完成整個動態系統的建模工作。
此外,MATLAB還有基于有限狀態機理論的Stateflow交互設計工具以及自動化的代碼設計生成工具Real-Time Workshop和Stateflow Coder。
- Python數據可視化:基于Bokeh的可視化繪圖
- Access 數據庫應用教程
- Apache Hive Essentials
- PostgreSQL 11從入門到精通(視頻教學版)
- 微信小程序項目開發實戰
- 焊接機器人系統操作、編程與維護
- Oracle 18c 必須掌握的新特性:管理與實戰
- Microsoft Dynamics AX 2012 R3 Financial Management
- Learning Docker Networking
- C++程序設計
- C Primer Plus(第6版)中文版【最新修訂版】
- 生成藝術:Processing視覺創意入門
- IBM Cognos Insight
- App Inventor開發實戰
- Smart Internet of Things Projects