1. 程式人生 > >混合程式設計時Matlab如何呼叫C++

混合程式設計時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檔案一致: