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