Matlab 教材:外部程式產生 MAT-file

這是 Matlab 與外界程式溝通的橋樑之一就是交換資料:

  1. 外部程式將資料儲存在 MAT-file 內,再由 Matlab 讀取
  2. Matlab 將資料儲存在 MAT-file 內,再由外部程式讀取
這一節舉 (1) 做示範。

Matlab 提供 C 和 Fortran 函式庫, 讓我們可以用 C 或 Fortran 程式語言和其編譯器, 在 C 或 Fortran 語言寫成的程式裡面做計算, 然後把計算結果儲存成 MAT-file 格式。 我們只舉 C 語言為例,示範最基本的四個動作:

  1. 新增或開啟 MAT-file
  2. 產生 Matlab 物件
  3. 儲存 Matlab 物件進入 MAT-file
  4. 關閉 MAT-file

只要明白 M-file 是一種程式語言的原始碼, 所以必須是純文字檔案,因此在傳輸的時候要確定使用了純文字模式 (ascii mode), 使得不同作業系統間的折列符號能夠正確地轉換,就沒問題了。 值得一提的是,在不同機器上、同版本的 Matlab, 會確保同一份原始碼的執行結果完全相同; 但是問題卻是:不同版本的 Matlab 卻不能做此保證。 特別是在 4.x 版本與 5.x 版本之間,有最大的差異! 讀者可能不至於遇到這種困難,因為可能很少讀者曾經使用過 4.x 版本的 Matlab。

其次,也要明白 MAT-file 是一般檔案,或稱二進位檔案, 因此在傳輸的時候一定要指定 binary mode,否則非常可能出錯! Matlab 在 MAT-file 的檔頭部份保留了一些資料, 讓 Matlab 知道這份 MAT-file 是在哪一種硬體上面儲存的, 因此如果必要的話,它會自行轉換,使得它可以保證 (如果檔案本身沒有損傷的話), 在不同機器上儲存與讀取的 MAT-file,其內容完全一致。

習題

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