混合程式設計時Matlab如何呼叫C++
目錄
0 聽說matlab裡可以呼叫C++?
1.1 檢視matlab版本資訊
使用命令:ver(‘matlab’)
1.2 設定編譯應用程式mex
使用命令:mex –setup
根據提示使用命令:mex -setup:D:\Matlab\Matlab\bin\win64\mexopts\msvcpp2015.xml C++
1.3 設定編譯應用程式mbuild
使用命令:mbuild –setup
根據提示使用命令:mex -setup:D:\Matlab\Matlab\bin\win64\mexopts\msvcpp2015.xml C++ -client MBUILD
2.1 檢視visual studio版本資訊
點選“幫助”→“關於Microsoft Visual Studio(A)”,可以檢視版本資訊:
2.2 新建專案,配置屬性(C/C++→包含目錄)
新增matlab安裝目錄下extern\include和extern\include\win64兩項:
2.3 配置屬性(連結器→輸入→附加依賴項)
在“連結器”→“輸入”→“附加依賴項”中新增以下內容:
libmx.lib
libmex.lib
libmat.lib
libeng.lib
2.4 配置屬性(連結器→常規→附加庫目錄)
在“連結器”→“常規”→“附加庫目錄”中新增matlab安裝資料夾下extern\lib\win64\microsoft路徑:
3 試試個例子唄
新建一個hello.cpp檔案,內容如下:
#include "mex.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { int i; i=mxGetScalar(prhs[0]); if(i==1) mexPrintf("hello, world!\n"); else mexPrintf("hello, everyone!\n" } |
在matlab命令列中輸入以下命令:mex hello.cpp
執行成功會生成一個字尾為mexw64的檔案:
在命令列輸入以下命令,檢視輸出結果是否與cpp檔案一致: