MATLAB是矩陣實驗室(Matrix Laboratory)的簡稱,是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。
基本功能
MATLAB和Mathematica、Maple并稱為三大數學軟件。它在數學類科技應用軟件中在數值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連 接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。 MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用 MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多,并且mathwork也吸收了像Maple等軟件的優點,使MATLAB 成為一個強大的數學軟件。在新的版本中也加入了對C,FORTRAN,C++ ,JAVA的支持??梢灾苯诱{用,用戶也可以將自己編寫的實用程序導入到MATLAB函數庫中方便自己以后調用,此外許多的MATLAB愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用。應用
MATLAB 產品族可以用來進行以下各種工作: ● 數值分析 ● 數值和符號計算 ● 工程與科學繪圖 ● 控制系統的設計與仿真 ● 數字圖像處理 技術 ● 數字信號處理 技術 ● 通訊系統設計與仿真 ● 財務與金融工程 MATLAB 的應用范圍非常廣,包括信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。附加的工具箱(單獨提供的專用 MATLAB 函數集)擴展了 MATLAB 環境,以解決這些應用領域內特定類型的問題。發展歷程
20世紀70年代,美國新墨西哥大學計算機科學系主任Cleve Moler為了減輕學生編程的負擔,用FORTRAN編寫了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市場。到20世紀90年代,MATLAB已成為國際控制界的標準計算軟件。 版本更新:特點
●此高級語言可用于技術計算 ●此開發環境可對代碼、文件和數據進行管理 ●交互式工具可以按迭代的方式探查、設計及求解問題 ●數學函數可用于線性代數、統計、傅立葉分析、篩選、優化以及數值積分等 ●二維和三維圖形函數可用于可視化數據 ●各種工具可用于構建自定義的圖形用戶界面 ●各種函數可將基于MATLAB的算法與外部應用程序和語言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成[2] ●不支持大寫輸入,內核僅僅支持小寫 ●自帶仿真系統優勢
(1)友好的工作平臺和編程環境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、 歷史命令窗口、編輯器和調試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業化以及軟件本身的不斷升級,MATLAB的 用戶界面也越來越精致,更加接近Windows的標準界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大 的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。(2)簡單易用的程序語言
Matlab一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同 步,也可以先編寫好一個較大的復雜的應用程序(M文件)后再一起運行。新版本的MATLAB語言是基于最為流行的C++語言基礎上的,因此語法特征與 C++語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。使之更利于非計算機專業的科技人員使用。而且這種語言可移植性好、可拓展性 極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。(3)強大的科學計算機數據處理能力
MATLAB是一個包含大量計算算法的集合。其擁有600多個工程中要用到的數學運算函數,可以方便的實現用戶所需的各種計算功能。函數中所使用的算法 都是科研和工程計算中的最新研究成果,而前經過了各種優化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++ 。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數集包括從最簡單最基本的函數到諸如矩陣,特征向量、快速傅立 葉變換的復雜函數。函數所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數據的統計分析、 工程中的優化問題、稀疏矩陣運算、復數的各種運算、三角函數和其他初等數學運算、多維數組操作以及建模動態仿真等。(4)出色的圖形處理功能
MATLAB 自產生之日起就具有方便的數據可視化功能,以將向量和矩陣用圖形表現出來,并且可以對圖形進行標注和打印。高層次的作圖包括二維和三維的可視化、圖象處 理、動畫和表達式作圖??捎糜诳茖W計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使它不僅在一般數據可視化軟件都具有的 功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對于一些其他軟件所沒有的功能(例如圖形的光照處理、色度處理以及四維數據的表現 等),MATLAB同樣表現了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數,保證了用戶不同層次的要 求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。(5)應用廣泛的模塊集合工具箱
MATLAB對許多專門的領域都開發了功能強大的模塊集和工具箱。一般來說,它們都是由特定領域的專家開發的,用戶可以直接使用工具箱學習、應用和評估 不同的方法而不需要自己編寫代碼。目前,MATLAB已經把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數據采集、數據庫接口、概率統計、樣條擬 合、優化算法、偏微分方程求解、神經網絡、小波分析、 信號處理、圖像處理、系統辨識、控制系統設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理仿 真、嵌入式系統開發、定點仿真、DSP與通訊、電力系統仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。(6)實用的程序接口和發布平臺
新版本的MATLAB可以利用MATLAB編譯器和C/C++數學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立于MATLAB運行的C和C++ 代碼。允許用戶編寫可以和MATLAB進行交互的C或C++語言程序。另外,MATLAB網頁服務程序還容許在Web應用中使用自己的MATLAB數學和 圖形程序。MATLAB的一個重要特色就是具有一套程序擴展系統和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數的子程序庫,每一個工具箱 都是為某一類學科專業和應用而定制的,主要包括信號處理、控制系統、神經網絡、模糊邏輯、小波分析和系統仿真等方面的應用。(7)應用軟件開發(包括用戶界面)
在開發環境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5進行連接。工具
常用工具箱
MATLAB包括擁有數百個內部函數的主包和三十幾種工具包。工具包又可以分為功能性工具包和學科工具包。功能工具包用來擴充MATLAB的符號計算, 可視化建模仿真,文字處理及實時控制等功能。學科工具包是專業性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類。 開放性使MATLAB廣受用戶歡迎。除內部函數外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構造新的專用工具包。 Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系統工具箱 Communication Toolbox——通訊工具箱 Financial Toolbox——財政金融工具箱 System Identification Toolbox——系統辨識工具箱 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——優化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——魯棒控制工具箱 Signal Processing Toolbox——信號處理工具箱 Spline Toolbox——樣條工具箱 Statistics Toolbox——統計工具箱 Symbolic Math Toolbox——符號數學工具箱 Simulink Toolbox——動態仿真工具箱 Wavele Toolbox——小波工具箱常用函數
Matlab內部常數[3] eps:浮點相對精度 exp:自然對數的底數e i 或 j:基本虛數單位 inf 或 Inf:無限大, 例如1/0 nan或NaN:非數值(Not a number),例如0/0 pi:圓周率 p(= 3.1415926...) realmax:系統所能表示的最大數值 realmin:系統所能表示的最小數值 nargin: 函數的輸入引數個數 nargout: 函數的輸出引數個數 lasterr:存放最新的錯誤信息 lastwarn:存放最新的警告信息 MATLAB常用基本數學函數 abs(x):純量的絕對值或向量的長度 angle(z):復數z的相角(Phase angle) sqrt(x):開平方 real(z):復數z的實部 imag(z):復數z的虛部 conj(z):復數z的共軛復數 round(x):四舍五入至最近整數 fix(x):無論正負,舍去小數至最近整數 floor(x):下取整,即舍去正小數至最近整數 ceil(x):上取整,即加入正小數至最近整數 rat(x):將實數x化為多項分數展開 rats(x):將實數x化為分數表示 sign(x):符號函數 (Signum function)。 當x<0時,sign(x)=-1; 當x=0時,sign(x)=0; 當x>0時,sign(x)=1。 rem(x,y):求x除以y的余數 gcd(x,y):整數x和y的最大公因數 lcm(x,y):整數x和y的最小公倍數 exp(x) :自然指數 pow2(x):2的指數 log(x):以e為底的對數,即自然對數或 log2(x):以2為底的對數 log10(x):以10為底的對數 MATLAB常用三角函數 sin(x):正弦函數 cos(x):余弦函數 tan(x):正切函數 asin(x):反正弦函數 acos(x):反余弦函數 atan(x):反正切函數 atan2(x,y):四象限的反正切函數 sinh(x):雙曲正弦函數 cosh(x):雙曲余弦函數 tanh(x):雙曲正切函數 asinh(x):反雙曲正弦函數 acosh(x):反雙曲余弦函數 atanh(x):反雙曲正切函數 適用于向量的常用函數有 min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位數 std(x): 向量x的元素的標準差 diff(x): 向量x的相鄰元素的差 sort(x): 對向量x的元素進行排序(Sorting) length(x): 向量x的元素個數 norm(x): 向量x的歐氏(Euclidean)長度 sum(x): 向量x的元素總和 prod(x): 向量x的元素總乘積 cumsum(x): 向量x的累計元素總和 cumprod(x): 向量x的累計元素總乘積 dot(x, y): 向量x和y的內積 cross(x, y): 向量x和y的外積 MATLAB基本繪圖函數 plot: x軸和y軸均為線性刻度(Linear scale) loglog: x軸和y軸均為對數刻度(Logarithmic scale) semilogx: x軸為對數刻度,y軸為線性刻度 semilogy: x軸為線性刻度,y軸為對數刻度 plot繪圖函數的參數 字元 顏色 字元 圖線型態 y 黃色 . 點 k 黑色 o 圓 w 白色 x x b 藍色 + + g 綠色 * * r 紅色 - 實線 c 亮青色 : 點線 m 錳紫色 -. 點虛線 -- 虛線 注解 xlabel('Input Value'); % x軸注解 ylabel('Function Value'); % y軸注解 title('Two Trigonometric Functions'); % 圖形標題 legend('y = sin(x)','y = cos(x)'); % 圖形注解 grid on; % 顯示格線 二維繪圖函數 bar 長條圖 errorbar 圖形加上誤差范圍 fplot 較精確的函數圖形 polar 極座標圖 hist 累計圖 rose 極座標累計圖 stairs 階梯圖 stem 針狀圖 fill 實心圖 feather 羽毛圖 compass 羅盤圖 quiver 向量場圖[1]- 參考資料
-
-
1
-
2
-
3
-
1
- 擴展閱讀:
-
-
1
Matlab官方網站:http://www.mathworks.com
-
2
Matlab中國:http://www.mathworks.cn/
-
3
MATLAB中文愛好者論壇:http://www.matlabfan.com/(推薦)
-
4
Matlab中文論壇:http://www.ilovematlab.cn/
-
5
Matlab百度貼吧:http://tieba.baidu.com/f?kw=matlab&fr=ala0
-
1