70年代中期,Cleve Moler和他的同事開發(fā)了LINPACK和EISPACK的Fortran子程序庫
70年代末期,Cleve Moler在新墨西哥大學給學生開線性代數(shù),為學生編寫了接口程序,這程序取名為MATLAB,即MATrix LABoratory
1983年春天,工程師John Little與Moler、Steve Bangert一起開發(fā)了第二代專業(yè)版MATLAB
1984年,MathWorks公司成立,MATLAB正是推向市場。
1992年,學生版MATLAB推出;1993年,Microsoft Windows版MATLAB面世;1995年,推出Linux版。
●基本的數(shù)據(jù)處理
●優(yōu)化和解方程
●動態(tài)過程仿真:實時的和非實時的
●數(shù)據(jù)來源:Excel、數(shù)據(jù)庫、A/D等等
●嵌入式的控制:Pc/104和DSP
●神經元網絡、小波分析、GA等等
●虛擬現(xiàn)實仿真
MATLAB語言是一種交互性的數(shù)學腳本語言,其語法與C/C++類似。它支持包括邏輯(boolen)、數(shù)值(numeric)、文本(text)、函數(shù)柄(function handle)和異質數(shù)據(jù)容器(heterogeneous container)在內的15種數(shù)據(jù)類型,每一種類型都定義為矩陣或陣列的形式(0維至任意高維)。
執(zhí)行MATLAB代碼的最簡單方式是在MATLAB程序的命令窗口(Command Window)的提示符處(>> )輸入代碼,MATLAB會即時返回操作結果(如果有的話)。此時, MATLAB可以看作是一個交互式的數(shù)學終端,簡單來說,一個功能強大的“計算器”。MATLAB代碼同樣可以保存在一個以.m為后綴名的文本文件中,然后在命令窗口或其它函數(shù)中直接調用。
MATLAB語言具有下述顯著特點:
1、具有強大的矩陣運算能力:Matrix Laboratory(矩陣實驗室),使得矩陣運算非常簡單。
2、是一種演算式語言
3、MATLAB的基本數(shù)據(jù)單元是既不需要指定維數(shù),也不需要說明數(shù)據(jù)類型的矩陣(向量和標量為矩陣的特例),而且數(shù)學表達式和運算規(guī)則與通常的習慣相同。
4、MATLAB語言編程簡單,使用方便。
操作桌面包括5個窗口(瀏覽器):
1、命令窗口(Command Window);
2、工作空間窗口(Workspace)
3、當前目錄瀏覽器(Current Directory);
4、命令歷史窗口(Command history);
5、啟動平臺(Launch Pad)。
7.1版之前,MATLB的釋放編號均以數(shù)字來命名,例如R7,R12.1,R14 SP1等;從7.2版開始,釋放編號以年份來命名,每年3月份推出的用a表示,9月份推出的則以b表示。
版本 | 建造編號 | 發(fā)布時間 |
MATLAB 1.0 | 1984 | |
MATALB 2 | 1986 | |
MATLAB 3 | 1987 | |
MATLAB 3.5 | 1990 | |
MATLAB 4 | 1992 | |
MATLAB 4.2c | R7 | 1994 |
MATLAB 5.0 | R8 | 1996 |
MATLAB 5.1 | R9 | 1997 |
MATLAB 5.1.1 | R9.1 | 1997 |
MATLAB 5.2 | R10 | 1998 |
MATLAB 5.2.1 | R10.1 | 1998 |
MATLAB 5.3 | R11 | 1999 |
MATLAB 5.3.1 | R11.1 | 1999 |
MATLAB 6.0 | R12 | 2000 |
MATLAB 6.1 | R12.1 | 2001 |
MATLAB 6.5 | R13 | 2002 |
MATLAB 6.5.1 | R13SP1 | 2003 |
MATLAB 6.5.2 | R13SP2 | 2003 |
MATLAB 7 | R14 | 2004 |
MATLAB 7.0.1 | R14SP1 | 2004 |
MATLAB 7.0.4 | R14SP2 | 2005 |
MATLAB 7.1 | R14SP3 | 2005 |
MATLAB 7.2 | R2006a | 2006 |
MATLAB 7.3 | R2006b | 2006 |
MATLAB 7.4 | R2007a | 2007 |
MATLAB 7.5 | R2007b | 2007 |
MATLAB 7.6 | R2008a | 2008 |
MATLAB 7.7 | R2008b | 2008 |
MATLAB 7.8 | R2009a | 2009.3.6 |
MATLAB 7.9 | R2009b | 2009.9.4 |
MATLAB 7.10 | R2010a | 2010.3.5 |
MATLAB 7.11 | R2010b | 2010.9.3 |
MATLAB包括擁有數(shù)百個內部函數(shù)的主包和三十幾種工具包。工具包又可以分為功能性工具包和學科工具包。功能工具包用來擴充MATLAB的符號計算,可視化建模仿真,文字處理及實時控制等功能。學科工具包是專業(yè)性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類。
開放性使MATLAB廣受用戶歡迎。除內部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構造新的專用工具包。
Matlab Main Toolbox——matlab主工具箱
Control System Toolbox——控制系統(tǒng)工具箱
Communication Toolbox——通訊工具箱
Financial Toolbox——財政金融工具箱
System Identification Toolbox——系統(tǒng)辨識工具箱
Fuzzy Logic Toolbox——模糊邏輯工具箱
Higher-Order Spectral Analysis Toolbox——高階譜分析工具箱
Image Processing Toolbox——圖象處理工具箱
LMI Control Toolbox——線性矩陣不等式工具箱
Model predictive Control Toolbox——模型預測控制工具箱
μ-Analysis and Synthesis Toolbox——μ分析工具箱
Neural Network Toolbox——神經網絡工具箱
Optimization Toolbox——優(yōu)化工具箱
Partial Differential Toolbox——偏微分方程工具箱
Robust Control Toolbox——魯棒控制工具箱
Signal Processing Toolbox——信號處理工具箱
Spline Toolbox——樣條工具箱
Statistics Toolbox——統(tǒng)計工具箱
Symbolic Math Toolbox——符號數(shù)學工具箱
Simulink Toolbox——動態(tài)仿真工具箱
Wavele Toolbox——小波工具箱
?。?)友好的工作平臺和編程環(huán)境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數(shù)和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業(yè)化以及軟件本身的不斷升級,MATLAB的用戶界面也越來越精致,更加接近Windows的標準界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯(lián)機查詢、幫助系統(tǒng),極大的方便了用戶的使用。簡單的編程環(huán)境提供了比較完備的調試系統(tǒng),程序不必經過編譯就可以直接運行,而且能夠及時地報告出現(xiàn)的錯誤及進行出錯原因分析。
?。?)簡單易用的程序語言
Matlab一個高級的矩陣/陣列語言,它包含控制語句、函數(shù)、數(shù)據(jù)結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)后再一起運行。新版本的MATLAB語言是基于最為流行的C++語言基礎上的,因此語法特征與C++語言極為相似,而且更加簡單,更加符合科技人員對數(shù)學表達式的書寫格式。使之更利于非計算機專業(yè)的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。
(3)強大的科學計算機數(shù)據(jù)處理能力
MATLAB是一個包含大量計算算法的集合。其擁有600多個工程中要用到的數(shù)學運算函數(shù),可以方便的實現(xiàn)用戶所需的各種計算功能。函數(shù)中所使用的算法都是科研和工程計算中的最新研究成果,而前經過了各種優(yōu)化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++ 。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數(shù)集包括從最簡單最基本的函數(shù)到諸如矩陣,特征向量、快速傅立葉變換的復雜函數(shù)。函數(shù)所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數(shù)據(jù)的統(tǒng)計分析、工程中的優(yōu)化問題、稀疏矩陣運算、復數(shù)的各種運算、三角函數(shù)和其他初等數(shù)學運算、多維數(shù)組操作以及建模動態(tài)仿真等。
?。?)出色的圖形處理功能
MATLAB自產生之日起就具有方便的數(shù)據(jù)可視化功能,以將向量和矩陣用圖形表現(xiàn)出來,并且可以對圖形進行標注和打印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖??捎糜诳茖W計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使它不僅在一般數(shù)據(jù)可視化軟件都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對于一些其他軟件所沒有的功能(例如圖形的光照處理、色度處理以及四維數(shù)據(jù)的表現(xiàn)等),MATLAB同樣表現(xiàn)了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數(shù),保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。
(5)應用廣泛的模塊集合工具箱
MATLAB對許多專門的領域都開發(fā)了功能強大的模塊集和工具箱。一般來說,它們都是由特定領域的專家開發(fā)的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數(shù)據(jù)采集、數(shù)據(jù)庫接口、概率統(tǒng)計、樣條擬合、優(yōu)化算法、偏微分方程求解、神經網絡、小波分析、信號處理、圖像處理、系統(tǒng)辨識、控制系統(tǒng)設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理仿真、嵌入式系統(tǒng)開發(fā)、定點仿真、DSP與通訊、電力系統(tǒng)仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)實用的程序接口和發(fā)布平臺
新版本的MATLAB可以利用MATLAB編譯器和C/C++數(shù)學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立于MATLAB運行的C和C++代碼。允許用戶編寫可以和MATLAB進行交互的C或C++語言程序。另外,MATLAB網頁服務程序還容許在Web應用中使用自己的MATLAB數(shù)學和圖形程序。MATLAB的一個重要特色就是具有一套程序擴展系統(tǒng)和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數(shù)的子程序庫,每一個工具箱都是為某一類學科專業(yè)和應用而定制的,主要包括信號處理、控制系統(tǒng)、神經網絡、模糊邏輯、小波分析和系統(tǒng)仿真等方面的應用。
?。?)應用軟件開發(fā)(包括用戶界面)
在開發(fā)環(huán)境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數(shù)嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5進行連接。