MATLAB編譯器(MATLAB Compiler)可以將使用者所寫的MATLAB函式轉換成C程式碼(Source Code)或共享程式庫(Shared Library),這些C程式碼或程式庫就可以被用在各種外部應用程式中,使這些外部應用程式具有MATLAB的完整功能,包含
- 各種數值運算:如計算反矩陣、行列式、固有值與固有向量等。
- 完整繪圖功能:如二維繪圖、三維繪圖、動畫等等。
更重要的是,你可以將這些外部應用程式的執行檔給予他人使用,而對方的執行平台並不需要安裝MATLAB。因此,只要使用MATLAB編譯器,我們就可以將各種MATLAB程式碼及相關功能,內嵌到各種外部應用程式,以便於利用或展示MATLAB的各項功能。
更詳細地說,MATLAB編譯器具有下列功能:
- 產生獨立應用程式(Stand-alone Applications):這些應用程式能夠具有MATLAB的完整功能,而且可以在沒有安裝 MATLAB的電腦上執行。
- 產生C或C++的程式庫:含動態程式庫(Dynamically Linked Libraries,簡稱DLL,用於微軟視窗系統)或共享程式庫(Shared Libraries,用於UNIX/LINUX系統),可用於任何外部應用程式,而且可以在沒有安裝 MATLAB的電腦上執行。
- 軟體元件:例如 Java 類別庫(Java Classes)、Excel 增益程式(Excel Add-ins)、COM 及 .NET 物件等,這些軟體元件的產生,需要使用 MATLAB Builder。
在研讀本章之前,讀者必須先瞭解本書第三章「應用程式介面」的內容,才能夠深入瞭解MATLAB編譯器的功能。另,由於篇幅有限,本章對於MATLAB編譯器的範例和說明,有下列幾項原則:
- 以 64-bit 的微軟視窗平台為主。
- 使用微軟的 C/C++ 10.0 編譯器來進行編譯。
在進入範例說明前,我們必須先設定電腦上的C編譯器,以便用於MATLAB編譯器,方法如下述。
首先,我們在MATLAB命令視窗下輸入「mbuild -setup」,系統回應如下:
Welcome to mbuild -setup. This utility will help you set up a default compiler. For a list of supported compilers, see http://www.mathworks.com/support/compilers/R2011a/win64.html Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/n? 輸入「y」之後,按下 Enter,此時系統回應如下:
Select a compiler: [1] Microsoft Visual C++ 2010 in c:\Program Files (x86)\Microsoft Visual Studio 10.0 [2] Microsoft Visual C++ 2008 SP1 in c:\Program Files (x86)\Microsoft Visual Studio 9.0 [0] None Compiler: 這些C編譯器是MATLAB在你的電腦自動偵測出來的結果(所以在不同的電腦會得到不同的結果),在本章的說明,我們將以C/C++ 10.0為主,所以我們輸入「1」,並按下 Enter,此時系統還會要求你確認,只要你再按下「y」及 Enter,就完成了C編譯器的設定。
以下兩小節將說明如何以命令列的方式,來將MATLAB函式轉成可執行檔以及共享程式庫。事實上,我們也可以使用圖形使用者介面的方式來達到同樣功能,相關的MATLAB指令是「deploytool」,但這方面的細節較多,為節省篇幅,不在此詳述,相關資訊可以參考鈦思科技提供的PDF檔案(位於本書範例光碟的本章範例目錄中)。
MATLAB程式設計:進階篇