基於MATLAB C/C++數學函式庫開發應用程式 (轉)

amyz發表於2007-11-25
基於MATLAB C/C++數學函式庫開發應用程式 (轉)[@more@]

基於MATLAB應用介面開發應用程式的目的一般分為三種:

1.  為了建立MATLAB與其他應用程式間的資料,這主要是MAT應用程式來完成的。

2.  為了充分利用其他應用程式的優點如計算速度快和已有的演算法程式,從而避免重複的開發,這主要是透過MEX檔案來完成的。

3.  為了拓廣MATLAB的應用範圍和應用手段,如在VB、VC中對MATLAB進行,主要透過MATLAB引擎和MATLAB 來完成的。

基於MATLAB C/C++數學庫開發應用程式的目的相對來說就簡單多了,就是為了利用現有的MATLAB所提供的功能,簡化在C/C++中對矩陣的處理。

從開發出的應用程式的方式看:

基於MATLAB應用程式介面開發的應用程式主要有三種:

  1. MEX檔案、MAT檔案應用程式和MATLAB引擎應用程式,其中MEX檔案為一種動態連結庫程式,它不能脫離MATLAB的工作環境而執行,必須在MATLAB的工作環境內部,透過MATLAB呼叫才能執行;
  2. MAT檔案是一種可獨立執行的應用程式,但它完成的功能非常有限,只能用於資料交換,而不能利用MATLAB所提供的功能來完成計算任務;
  3. MATLAB引擎應用程式也是一種可以獨立執行的應用程式,但是在程式執行時,將在後臺啟動一個MATLAB程式,用於接收從應用程式傳送來的指令並執行,然後按要求返回計算結果。

所以,基於MATLAB應用程式介面開發的應用程式並不是一種獨立可執行的應用程式,仍然需要依靠MATLAB,而基於MATLAB C/C++數學函式庫開發的應用程式則完全不同,一量它們建立成功,就無需依靠MATLAB,可以完全獨立地執行,與MEX檔案和MATLAB引擎應用程式相比,主要有以下幾個明顯的優點:

l  執行速度快

l  需求小

l  可以釋出給沒有MATLAB的使用

缺點:

l  使用者不能在基於MATLAB C/C++數學函式庫的應用程式中使用MATLAB的函式eval()和input()

l  不能呼叫MATLAB圖形控制程式碼的函式

l  不能呼叫MATLAB工具箱的函式

l  不能訪問Simulik

l  MATLAB中的一些方法在C/C++中得不到支援,如“:”,“[ ]”

因此,基於MATLABC/C++數學函式庫編寫的應用程式非常適合應用於需要進行大規模計算並且沒有圖形輸出的場合,當然也可以使用第三方的圖形系統來顯示MATLAB C/C++數學函式庫的計算結果。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-984599/,如需轉載,請註明出處,否則將追究法律責任。

相關文章