matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc
如何將matlab65函數轉換成vc++60動態鏈接庫.doc
1如何將Matlab6.5函數轉換成VC++6.0動態鏈接庫1、編寫Matlab函數函數文件sum_prod.m,內容如下:function[sum,prod]=sum_prod(p1,p2)sum=p1+p2;%p1與p2的和prod=p1.*p2;%p1與p2的點乘該函數完成的是矩陣的求和與點乘的功能,下面將介紹把該代碼轉換成C++環境可用的代碼的方法。2、Matlab6.5編譯器設置(1)在同一臺電腦上安裝Matlab6.5和VisualC++6.0;(2)mex命令設置(a)運行Matlab,在Matlab的命令窗口(CommandWindow)鍵入“mex-setup”命令后,按回車鍵,安裝Matlab編譯器;(b)命令窗口出現如下提示:Pleasechooseyourcompilerforbuildingexternalinterface(MEX)files:Wouldyoulikemextolocateinstalledcompilers[y]/n?此時鍵入”y”,按回車;(c)命令窗口出現如下提示:Pleasechooseyourcompilerforbuildingexternalinterface(MEX)files:Wouldyoulikemextolocateinstalledcompilers[y]/n?ySelectacompiler:[1]DigitalVisualFortranversion6.0inC:\ProgramFiles\MicrosoftVisualStudio[2]LccCversion2.4inC:\MATLAB6P5\sys\lcc[3]MicrosoftVisualC/C++version6.0inC:\ProgramFiles\MicrosoftVisualStudio[0]None此時鍵入”3”,按回車;選擇MicrosoftVisualC++6.0的編譯器(d)命令窗口出現如下提示:Pleaseverifyyourchoices:Compiler:MicrosoftVisualC/C++6.0Location:C:\ProgramFiles\MicrosoftVisualStudioArethesecorrect?([y]/n):此時鍵入”y”,按回車;確認選擇MicrosoftVisualC++6.0的編譯器(3)mbuild命令設置(a)運行Matlab,在Matlab的命令窗口(CommandWindow)鍵入“mbuild-setup”命令后,按回車鍵,安裝Matlab編譯器;(b)命令窗口出現如下提示:PleasechooseyourcompilerforbuildingstandaloneMATLABapplications:Wouldyoulikembuildtolocateinstalledcompilers[y]/n?此時鍵入”y”,按回車;(c)命令窗口出現如下提示:2[1]LccCversion2.4inC:\MATLAB6P5\sys\lcc[2]MicrosoftVisualC/C++version6.0inC:\ProgramFiles\MicrosoftVisualStudio[0]None此時鍵入”2”,按回車;選擇MicrosoftVisualC++6.0的編譯器(d)命令窗口出現如下提示:Pleaseverifyyourchoices:Compiler:MicrosoftVisualC/C++6.0Location:C:\ProgramFiles\MicrosoftVisualStudioArethesecorrect?([y]/n):此時鍵入”y”,按回車;確認選擇MicrosoftVisualC++6.0的編譯器(4)在Matlab的命令窗口(CommandWindow)鍵入“cd(prefdir);mccsavepathprefdir;”啟動MATLABadd-in工具條3、建立MFC動態鏈接工程(1)建立一個名為Sample的MFC動態鏈接工程,如下圖所示,其它選項按默認設置。(2)在Sample目錄下會生成Sample.cpp和Sample.h這兩個文件。4、啟用MatlabAdd-in工具條在上面的VC工程中,在菜單欄的空白處右鍵單擊鼠標,出現如下菜單3點擊Coustomize…菜單項,出現如下Coustomize對話框,選擇Add-inandMacroFiles標簽,選中MATLABAdd-in選項,點Close按鈕關閉對話框,這里會在菜單附近出現如下工具條,它就是MatlabAdd-in工具條。5、VC++6.0環境及工程設置在上面的VC工程中,進行以下設置(1)VC++6.0環境設置單擊菜單Tools,出現如下菜單4單擊Options…菜單項,出現Options對話框,選擇Directories標簽,在includefiles里面加入:C:\MATLAB6P5\EXTERN\INCLUDEC:\MATLAB6P5\EXTERN\INCLUDE\CPP如下圖所示在Libraryfiles里面加入:C:\MATLAB6P5\EXTERN\LIBC:\MATLAB6P5\EXTERN\LIB\WIN32C:\MATLAB6P5\EXTERN\LIB\WIN32\MICROSOFT\MSVC60如下圖所示5(2)VC++6.0工程設置單擊菜單Project,出現如下菜單單擊Setting…菜單項,出現ProjectSetting對話框,選擇Link標簽,在Object/librarymodules:下面的文本框內容的后面加入libmmfile.liblibmatlb.liblibmx.liblibmat.liblibmatpm.libsgl.liblibmwsglm.liblibmwservices.lib,如下圖所示6選擇C/C++標簽,在Prerocessordefinitions:下面的文本框內容的后面加入,MSVC,IBMPC,MSWIND,如下圖所示設置完成。76、Matlab到C++的代碼轉換在上面的VC工程中(1)將前面sum_prod.m文件復制到該Sample工程所在的目錄下(2)單擊MatlabAdd-in工具條最左邊第一個按鈕,出現如下對話框選中WindowsConsole四個選擇選中后二項,如上圖所示,單擊OK,出現如下對話框選中Matlab函數文件sum_prod.m,單擊“打開”按鈕,這樣在該工程所在的目錄就生成了sum_prod.cpp和sum_prod.hpp文件。(3)打開sum_prod.cpp文件,注意到里面有這樣一個函數mwArraysum_prod(mwArray*prod,mwArrayp1,mwArrayp2){…}可以看到在C++環境中,sum_prod也是一個函數,它的輸入與輸出數據類型是mwArray,它是VC6.0專門為Matlab中的矩陣對象定義的一個類。函數sum_prod有三個輸入參數和一個輸出參數。由于C++函數不能有一個以上的返回值,因此這里將Matlab函
總結
以上是生活随笔為你收集整理的matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab disteclud,机器学
- 下一篇: Windows Workflow Fou