Matlab 教材:Matlab 的 API

Matlab 與外部程式溝通的方式有以下四種:

  1. 外部程式將資料儲存在 MAT-file 內,再由 Matlab 讀取 (支援 C 與 Fortran)
  2. Matlab 將資料儲存在 MAT-file 內,再由外部程式讀取 (支援 C 與 Fortran)
  3. 從 Matlab 工作環境內呼叫外部程式,將參數從 Matlab 傳去外部程式, 再將外部的計算結果傳回來 Matlab 工作環境;外部程式就像 M-file 函式一樣 (支援 C, Fortran 與 Java)
  4. 在外部執行的程式中呼叫 Matlab,將參數傳給 Matlab, 非互動地執行 Matlab 工作,然後將 Matlab 的執行結果傳回外部程式。 電腦中必須安裝 Matlab 套裝軟體 (支援 C, Fortran 與 Java)

Matlab 出售時便提供一套可以和 C, Fortran 或 Java 編譯器合作的函式庫, 透過這套函式庫 (和兩支特殊的 Matlab 程式) 來達成上述四種 Matlab 與外部程式的合作關係。 這一套函式庫就稱為 Matlab 的 API (Application Program Interface)。

在我們開始之前,要先找到這些相關的檔案。 因為 BCC16 並不支援 Fortran 和 Java 語言, 所以這裡只講 Matlab 提供給 C 語言的 API。 如果讀者還沒有足夠的 C 語言知識,請先學習第 C 講的 C 語言線上教材, 再來看這一節和此後的連續幾節。

首先要找到檔案。假設 $MATLAB 代表安裝 Matlab 的根目錄, 例如在我的 Unix 電腦上,那是 /usr/local/matlab6, 在我的 MS-Windows 電腦上,那是 D:\Program Files\???。 C 語言的原始碼需要的檔頭檔案 (Header files) 都在 $MATLAB/extern/include 之內;而編譯之後,連結步驟中需要的機器碼 (object code), 若是 Unix 類型的電腦,則在 $MATLAB/extern/lib$ARCH 之內,其中 $ARCH 指的是一種硬體名稱, 例如在我的 Unix 電腦上,那是 glnx86 (GNU Linux 86)。 如果是 MS-Windows 電腦,則機器碼放在動態連結檔案 (DLL) 內, 它們都在 $MATLAB\extern\bin$ARCH 裡面, 而 $ARCH 好像目前都是 win32,未來不一定會有其他種類的硬體規格。

也許需要設定參數

setenv LD_RUN_PATH /usr/lib:/usr/local/lib:/usr/local/matlab6/extern/lib/glnx86/

習題

[BCC16-B]
單維彰 (2000/01/09) --- 2003/12/28
[Prev] [Next] [Up]