MATLAB 是一款以數學計算為主的高階程式設計軟體,提供了各種強大的陣列運算功能用於對各種資料集合進行處理。
矩陣和陣列是 MATLAB 資料處理的核心,因為 MATLAB 中所有的資料都是用陣列來表示和儲存的。
雖然 MATLAB 是面向矩陣的程式語言,但它還具有一種與其他計算機程式語言(如C語言、FORTRAN)類似的程式設計特性。在進行資料處理的同時,MATLAB 還提供了各種圖形使用者介面(GUI)工具,便於使用者進行各種應用程式開發。
MATLAB 譯為“矩陣實驗室”,最初用來提供通往 LINPACK 和 EISPACK 矩陣的軟體包介面。後來,它漸漸發展成為通用的科技計算圖形互動系統和程式語言。
MATLAB 簡介
MATLAB 的基本資料單位是矩陣,它的指令表達與數學工程中常用的習慣形式十分相似,例如:
-
矩陣方程
Ax=b
在 MATLAB 中被寫成A*x=b
;
-
而若要通過 A、b 求 x,那麼只要寫
x=bA
即可完全不需要對矩陣的乘法和求逆進行程式設計。
因此用 MATLAB 解決計算問題比用 C、Fortran 等語言簡捷得多。
MATLAB 發展到現在已經成為一個系列產品:MATLAB 主程式包和各種可選的 toolbox 工具包。主包中有數百個核心內部函數。迄今所有的四十幾個工具包又可分為兩類—功能性工具包和學科性工具包。
功能性工具包主要用來擴充 MATLAB 的符號計算功能、圖形建模模擬功能、文書處理功能以及硬體實時互動功能。這種功能性工具包可用於多種學科。
學科性工具包是專業性比較強的工具包,如控制工具包(Control Toolbox)、信號處理工具包(Signal Processing Toolbox)、通訊工具包(Communication Toolbox)等都屬此類。
開放性是 MATLAB 最重要且最受人歡迎的特點。除內部函數外,所有 MATLAB 主包檔案和各工具包檔案都是可讀可改的原始檔。使用者可通過對原始檔進行修改或加入自己的編寫檔案來構成新的專用工具包。
MATLAB 已經經過使用者的多年考驗。在歐美發達國家,MATLAB 已經成為應用線性代數、自動控制理論、數理統計、數位信號處理、時間序列分析、動態系統模擬等高階課程的基本教學工具,成為攻讀學位的大學生、碩士生、博士生必須掌握的基本技能。在設計研究單位和工業部門,MATLAB 被廣泛用於研究和解決各種具體工程問題。
MATLAB 的強大功能從本質上講分為以下三類:
-
內部函數。
-
系統附帶各種工具包中的M檔案所提供的大量函數。
-
使用者自己增加的函數。
這一特點是其他許多軟體平台無法比擬的。
MATLAB 提供的通用數理類函數包括如下:
-
基本數學函數。
-
特殊函數。
-
基本矩陣函數。
-
特殊矩陣函數。
-
矩陣分解和分析函數。
-
資料分析函數。
-
微分方程求解。
-
多項式函數。
-
非線性方程及其優化函數。
-
數值積分函數。
-
信號處理常式。
目前,MATLAB 產品的工具箱有四十多個,分別涵蓋了資料獲取、科學計算(如偏微分方程、最佳化、數理統計、樣條函數、神經網路等)、控制系統設計與分析、數位信號處理、數位影像處理、金融財務分析以及生物遺傳工程等專業領域。
Simulink 是基於 MATLAB 的框圖設計環境,可以用來對各種動態系統進行建模、分析和模擬,它的建模範圍廣泛,可以針對任何能夠用數學描述的系統進行建模,如航空航天動力學系統、衛星控制制導系統、通訊系統、船舶及汽車等,其中包括連續、離散、條件執行、事件驅動、單速率、多速率和混雜系統等。
Simulink 提供了系統框圖模型的圖形介面,而且 Simulink 還提供了豐富的功能模組以及不同的專業模組集合,利用 Simulink 幾乎可以做到不書寫任何程式碼即可完成整個動態系統的建模工作。
Stateflow 是一個互動式的設計工具,它基於有限狀態機的理論,可以用來對複雜的事件驅動系統進行建模和模擬。Stateflow 與 Simulink 和 MATLAB 緊密整合,可以將 Stateflow 建立的複雜控制邏輯有效地結合到 Simulink 的模型中。
MATLAB語言平台
MATLAB 支援許多作業系統,提供了大量的平台獨立措施。在本文發布時,Windows XP、Windows 7、Windows 8 、Windows 10 和許多版本的 UNIX 系統都支援它。
在一個平台上編寫的程式,在其他平台上一樣可以正常執行;在一個平台上編寫的資料檔案,在其他平台上一樣可以編譯。因此,使用者可以根據需要把 MATLAB 編寫的程式移植到新平台。
任何一個 MATLAB 程式的基本組成單元都是陣列。陣列是一組資料值的集合,這些資料被編上行號和列號,擁有唯一的名稱。
陣列中的單個資料可以通過帶有小括號的陣列名存取,括號內有這個資料的行標和列標,中間用逗號隔開。
標量也被 MATLAB 當作陣列,只不過只有一行和一列。
當 MATLAB 執行時,有多種型別的視窗,有的用於接收命令,有的用於顯示資訊。三個重要的視窗有命令列視窗、影象視窗、編輯/偵錯視窗,它們的作用分別為輸入命令、顯示圖形、允許使用者建立和修改 MATLAB 程式。
當 MATLAB 程式啟動時,會出現 MATLAB 桌面視窗。預設的 MATLAB 桌面結構如下圖所示。