首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC 與 MATLAB 聯合程式設計 (五) — 介面方式總覽與選型指南

     編輯:關於VC++

前言

前文僅介紹簡單範例,關鍵知識 (函數輸入輸出格式、工具箱呼叫、編譯器用法、混合使用等) 將於後續文章說明。本文概述 VC 呼叫 MATLAB 的常用方法,建立整體認知。

方法一:MATLAB Engine (Client/Server 模式)

MATLAB 為後台伺服器,C 程式為前台客戶端,透過 Windows 動態資料交換 (DDE) 通訊。幾乎可使用 MATLAB 所有功能,但需安裝 MATLAB、執行效率低、部署不便,適合個人使用或示範,不適合商業軟體發布。

方法二:直接呼叫 C/C++ 數學函式庫

MATLAB 提供大量 C/C++ 重寫的數學函數 (線性代數、數值分析、傅立葉、多項式、微分方程、矩陣運算等)。優點:彈性高、不依賴 MATLAB 執行環境;缺點:需熟悉 C/C++,呼叫工具箱函數困難。適合精通 C/C++ 的開發者。

方法三:MATLAB Compiler (mcc)

將 .m 檔轉為 C/C++ 程式碼,再由 C/C++ 編譯器建置為獨立應用程式。生成過程中產生的 C/C++ 檔原則上可被其他程式碼呼叫。編譯器可依選項產生 DLL、C/C++ 檔、可執行檔等。限制 (R21.1 以前):無法轉換腳本檔、不支援 MATLAB 物件、無法用 input/eval 操作工作區變數、無法動態命名變數、無法處理巢狀呼叫其他 .m 檔、無法使用內聯函數。

方法四:COM Builder (MATLAB 6.5 新增)

將 MATLAB 程式封裝為 COM 元件,供其他語言呼叫。實作簡單、通用性強、幾乎可使用所有 MATLAB 函數 (不支援腳本檔,需改為函數檔)。程式較大、呼叫工具箱或函數較多時推薦使用,也是 MathWorks 官方推薦方式。

方法五:matcom 工具 (第三方,後被 MathWorks 併購)

體積小 (~8 MB),可將 .m 腳本/函數轉為同功能 C/C++ 檔,支援生成 DLL/EXE、巢狀腳本、環境設定後可用工具箱。缺點:對 struct/class 支援不全、部分繪圖 (特別是 3D) 無法正確實現。適合不涉及 3D 繪圖、.m 檔不大的專案。

綜合建議

  • 上述方法可單獨或混合使用。
  • 方法二與三本質相關:編譯器轉換過程中也會呼叫對應的 C/C++ 函式庫。
  • 後續文章將從方法二開始深入介紹。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved