天天看點

《MATLAB 7.0從入門到精通(修訂版)》——第1章 MATLAB概述 1.1 MATLAB 7.0簡介

本節書摘來自異步社群《matlab 7.0從入門到精通(修訂版)》一書中的第1章,第1.1節,作者 劉保柱,蘇彥華,張宏林,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

matlab是一種高效的工程計算語言,它将計算、可視化和程式設計等功能集于一個易于使用的環境。在matlab環境中描述問題及編制求解問題的程式時,使用者可以按照符合人們科學思維的方式和數學表達習慣的語言形式來書寫程式。其典型應用主要包括以下幾個方面:

數學計算;

算法開發;

資料采集;

系統模組化和仿真;

資料分析和可視化;

科學和工程繪圖;

應用軟體開發(包括使用者界面)。

matlab是一個互動式系統(寫程式與執行指令同步),其基本的資料元素是沒有維數限制的陣列。這使得使用者可以解決許多工程技術上的問題,特别是那些包含了矩陣和向量的公式的計算。采用matlab編制解決上述問題的程式比采用隻支援标量和非互動式的程式設計語言(如c語言和fortan語言)更加友善。

matlab這個詞代表“矩陣實驗室”(matrix laboratory),它是以線性代數軟體包linpack和特征值計算軟體包eispack中的子程式為基礎發展起來的一種開放型程式設計語言。20世紀80年代初期,cleve moler和john little采用c語言改寫了matlab的核心,不久他們便成立了mathworks軟體開發公司,并将matlab正式推向市場。曆經十幾年的發展和競争,matlab成為國際認可的最優化的科技應用軟體。在大學裡,它是用于初等和高等數學、自然科學和工程學的标準教學工具;在工業界,它是一個高效的研究、開發和分析的工具。随着科技的發展,許多優秀的工程師不斷地對matlab進行了完善,使其從一個簡單的矩陣分析軟體逐漸發展成為一個具有極高通用性,并帶有衆多實用工具的運算操作平台。

matlab的一個重要特色就是它有一套程式擴充系統和一組稱之為工具箱(toolboxes)的特殊應用子程式。工具箱是matlab函數的子程式庫,每一個工具箱都是為某一類學科專業和應用而定制的,主要包括信号處理、控制系統、神經網絡、模糊邏輯、小波分析和系統仿真等方面的應用。

matlab系統由以下5個主要部分組成,下面具體進行介紹。

開發環境:由一系列工具組成。這些工具友善使用者使用matlab的函數和檔案,其中許多工具采用的是圖形使用者界面。包括matlab桌面和指令視窗、曆史指令視窗、編輯器和調試器、路徑搜尋和用于浏覽幫助、工作空間、檔案的浏覽器。

matlab數學函數庫:這是一個包含大量計算算法的集合,這些函數包括從最簡單最基本的函數(如加、正弦等)到諸如矩陣的特征向量、快速傅立葉變換等較複雜的函數。

matlab語言:這是一個進階的矩陣/陣列語言,它包含控制語句、函數、資料結構、輸入輸出和面向對象的程式設計特點。使用者可以在指令視窗中将輸入語句與執行指令同步,也可以先編寫好一個較大的複雜的應用程式(m檔案)後再一起運作。

圖形處理:用matlab可以将向量和矩陣用圖形表現出來,并且可以對圖形進行标注和列印。高層次的作圖包括二維和三維資料可視化、圖像處理、動畫和表達式作圖,低層次的作圖包括定制圖形的顯示和為使用者的matlab應用程式建立的圖形使用者界面。

matlab應用程式接口(api):這是一個庫,它允許使用者編寫可以和matlab進行互動的c或fortran語言程式。

matlab軟體從1984年推出的第1個版本到目前釋出的第14個版本matlab 7.0(release14),有了較大的改進和增補,增加了許多新功能和更為有效的處理方法。

1.開發環境

新的使用者界面環境和開發環境,使使用者更友善地控制多個檔案和圖形視窗,使用者可以按照自己的習慣來定制桌面環境,還可以為常用的指令定義快捷鍵;

功能更強的數組編輯器和工作空間浏覽器,使用者可更友善地浏覽、編輯和圖形化變量;

提供的m-lint代碼分析器,可以友善使用者修改代碼以取得更好的性能和可維護性;

更強大的編輯器,使用者可以選擇執行m檔案中的部分内容等。

2.程式設計

支援函數嵌套、有條件中斷點;

可以用匿名函數來定義單行函數等。

3.數值處理

整數算法,友善使用者處理更大的整數;

單精度算法、線性代數、fft和濾波,友善使用者處理更大的單精度資料;

linsolve函數,使用者可以通過定義系數矩陣更快地求解線性系統;

ode求解泛函數,操作隐式差分等式和求解多點式邊界值問題。

4.圖形化

新的繪圖界面視窗,使用者可以不必通過輸入m函數代碼而直接在繪圖界面視窗中互動式地建立并編輯圖形;

使用者可以直接從圖形視窗中生成m代碼檔案,使得使用者可以多次重複地執行使用者自定義的作圖;

更強大的圖形标注和處理功能,包括對象對齊、連接配接注釋和資料點的箭頭等;

資料探測工具,使用者可以在圖形視窗中友善地查詢圖形上某一點的坐标值;

功能更強大的圖形句柄等。

5.圖形使用者界面

面闆和分組按鈕使得使用者可以對使用者界面的控件進行分組;

使用者可以直接在guide中通路activex控件。

6.檔案i/o和外部應用程式接口

新的檔案i/o函數支援使用者可以讀更大的文本檔案,并且可以向excel和hdf5檔案中寫入内容;

支援壓縮格式的mat檔案,使得使用者可以使用較少的磁盤空間儲存大量的資料,而且速度更快;

可以使用javaaddpath函數來動态添加、删除或重載java類,而不必重新開機matlab 7.0;

支援com使用者接口、伺服器事件和visual basic腳本;

可以基于簡單的對象通路協定(soap)來通路網頁伺服器;

提供ftp對象用于連接配接ftp伺服器,實作對異地檔案的處理;

支援unicode國際字元集标準,使得mat檔案中的字元資料可以在不同語言之間共享。