天天看點

《MATLAB R2012a超級學習手冊》一1.1 MATLAB介紹

本節書摘來自異步社群《matlab r2012a超級學習手冊》一書中的第1章,第1.1節,作者 史潔玉 , 孔玲軍,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

matlab r2012a超級學習手冊

matlab是一種高效的工程計算語言,它将計算、可視化和程式設計等功能集于一個易于使用的環境。

matlab将高性能的數值計算和可視化內建在一起,并提供了大量的内置函數,進而被廣泛地應用于科學計算、控制系統、資訊處理等領域的分析、仿真和設計工作,而且利用matlab産品的開放式結構,可以非常容易地對matlab的功能進行擴充,進而在不斷深化對問題認識的同時,不斷完善matlab産品以提高産品自身的競争能力。

說明:

目前matlab産品家族廣泛用于如下幾個方面。

數值分析。

數值和符号計算。

工程與科學繪圖。

圖形使用者界面設計、控制系統的設計與仿真。

數字圖像處理、數字信号處理。

通信系統設計與仿真。

财務與金融工程等領域。

matlab産品家族的架構結構如圖1-1所示。其中matlab是matlab産品家族的基礎,它提供了基本的數學算法,例如矩陣運算、數值分析算法,可直接調用600多個内建matlab函數。matlab內建了2d和3d圖形功能,以完成相應數值可視化的工作,并且提供了一種互動式的進階程式設計語言——m語言,利用m語言可以通過編寫腳本或者函數檔案實作讀者自己的算法。

《MATLAB R2012a超級學習手冊》一1.1 MATLAB介紹

matlab compiler是一種編譯工具,能夠将那些利用matlab提供的程式設計語言——m語言編寫的函數檔案編譯生成為函數庫、可執行檔案com元件等。利用m語言還開發了相應的matlab專業工具箱函數供讀者直接使用。

simulink是基于matlab的框圖設計環境,可以用來對各種動态系統進行模組化、分析和仿真。它的模組化範圍廣泛,可以針對任何能夠用數學來描述的系統進行模組化,其中包括連續、離散,條件執行,事件驅動,單速率、多速率和混雜系統等。

stateflow是一個互動式的設計工具。它基于有限狀态機的理論,可以用來對複雜的事件驅動系統進行模組化和仿真。stateflow與simulink、matlab緊密內建,可以将stateflow建立的複雜控制邏輯有效地結合到simulink的模型中。

matlab軟體從1984年推出的第1個版本到目前釋出的版本為matlab r2012a。matlab語言相對于傳統的科技程式設計語言有諸多的優點,主要包括以下幾個方面。

1.易用性

matlab是種解釋型語言,就像各種版本的basic。和basic一樣,它簡單易用可實時計算在指令行處表達式的值,也可執行預先寫好的大型程式。在matlab內建開發環境下,程式可以友善地編寫、修改和調試。

2.平台獨立性

matlab支援許多的作業系統,提供了大量的平台獨立的措施。在一個平台上編寫的程式,在其他平台上一樣可以正常運作,在一個平台上編寫的資料檔案在其他平台上一樣可以編譯。

3.預定義函數

matlab帶有一個極大的預定義函數庫,提供了許多已測試和打包過的基本工程問題的函數。在許多的語言中,需要寫出所編數組的下标和執行計算所需要的函數。這些函數包括其數學意義、中值、标準誤差等。

除了植入matlab基本語言中的大量函數,還有許多專用工具箱,以幫助讀者解決在具體領域的複雜問題。

4.機制獨立的畫圖

與其他語言不同,matlab有許多的畫圖和圖像處理指令。當matlab運作時,這些标繪圖和圖檔将會出現在這台電腦的圖像輸出裝置中。此功能使得matlab成為一個形象化技術資料的卓越工具。

5.可視化圖形界面

matlab允許程式員為他們的程式建立一個互動式的圖形界面。利用matlab的這種功能,程式員可以設計出相對于無經驗的讀者可以操作的複雜的資料分析程式。

6.matlab編譯器

matlab的靈活性和平台獨立性是通過将matlab代碼編譯成裝置獨立的p代碼,然後在運作時解釋p代碼來實作的。這種方法與微軟的vb相類似。不幸的是,由于matlab是解釋性語言,而不是編譯型語言,導緻産生的程式執行速度慢。

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

matlab的檔案i/o和外部應用程式接口有如下特點。

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

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

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

支援com接口、伺服器事件和visualbasic腳本等。

當然matlab也有兩個基本的缺點。

(1)matlab是解釋型語言,執行速度要比編譯型語言慢得多。這個問題可以通過合理的matlab結構得到緩解,也可以在使用前編譯出matlab程式。

(2)matlab軟體的費用較高。一個完全版matlab編譯器的大小是一個c語言或fortran語言編譯器的5到10倍。但matlab能夠節省大量的時間在科技程式設計方面,故matlab在商業程式設計過程中是節省成本的。

繼續閱讀