於matlab寫function.m,產生dll檔
之前已經選擇編輯器,這次一樣也在VC2010上使用,因此不需要再重新選一次
在命令視窗貼上:mcc -W cpplib:xxxxxx -T link:lib xxx.m
前者填入所產生dll的檔名,通常libxxx (xxx為.m名稱)。後者填入matlab function 檔名。
就會產生許多檔案,只要複製 xxx.dll xxx.h xxx.lib這三個檔案到VC2010專案檔目錄底下
環境設置
如下圖配置
專案右鍵點選屬性
進入組態屬性/C/C++/一般/其他include目錄,"matlab路徑"\extern\include\win32 以及 "matlab路徑"\extern\include
連接器\一般\其他程式庫目錄 "matlab路徑"\extern\lib\win32\microsoft
連接器\輸入\其他相依性
xxx.lib (所產生的xxx.lib檔案)
mclmcrrt.lib
mclmcr.lib
libmx.lib
libmex.lib
程式
xxx.m
function c=xxx(a,b) end |
xxxx.cpp(VC2010)
#include "xxx.h" //(所產生的xxx.h檔案) void main(){ mwArray a(m, n, mxDOUBLE_CLASS); // double a[m][n]; mwArray b(m, n, mxDOUBLE_CLASS); mwArray c(m, n, mxDOUBLE_CLASS); double inputA[m][n] ,inputB[m][n] , outputC[m][n]; a.SetData(inputA, mxn); b.SetData(inputB, mxn); xxx(1,x,a,b); c.GetData(outputC, mxn); } |
結束。