資源描述:
《VC++與Matlab混合編程的快速實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、VC++與Matlab混合編程的快速實(shí)現(xiàn)劉建偉吉林大學(xué)朝陽校區(qū)電子科學(xué)與工程學(xué)院電子信息工程系(?長春?130026)摘?要:?許多工程軟件需要用到復(fù)雜的數(shù)學(xué)算法。VC++能夠形成各種用戶界面,?并可以直接與系統(tǒng)及底層硬件交換數(shù)據(jù)。因此研究VC++和Matlab?的混合編程具有很大的實(shí)際意義。該文討論了如何使用Matlab?的Complier?將*.m函數(shù)編譯為動態(tài)鏈接庫DLL,?提供給VC++調(diào)用的方法,?提供了一種VC++與Matlab?混合編程的快速實(shí)現(xiàn)。關(guān)鍵詞:?Matlab?VC++?MCC?Complier?動態(tài)鏈接庫DLLMatlab?作為當(dāng)今世界上應(yīng)用最為廣泛的數(shù)學(xué)軟件,?
2、具有非常強(qiáng)大的數(shù)值計算、數(shù)據(jù)分析處理、系統(tǒng)分析、圖形顯示甚至符號運(yùn)算的功能。已經(jīng)在如生物工程,?圖像處理,?語音處理,?雷達(dá)探空,?聲納探水,?地震探地,?以及控制論,?系統(tǒng)論等各個領(lǐng)域得到廣泛的應(yīng)用。它是一個完整的數(shù)學(xué)平臺,?在這個平臺上,?用戶只需寥寥數(shù)語就可以完成十分復(fù)雜的功能,?大大提高了工程分析計算、圖像處理的效率。但是Matlab?強(qiáng)大的功能只能在它所提供的平臺上才能使用,?即用戶必須在安裝Matlab?系統(tǒng)的機(jī)器上才能執(zhí)行*.m?文件。這樣當(dāng)用戶需要將在Matlab?下已開發(fā)完畢的復(fù)雜算法應(yīng)用到高級語言開發(fā)環(huán)境下時就帶來了問題,?是將現(xiàn)成的東西集成高級語言開發(fā)的程序中呢??還
3、是用高級語言再重新實(shí)現(xiàn)一遍??顯然大家所期望的是減少工作量,?最好能將Matlab?下開發(fā)好的程序或函數(shù)直接應(yīng)用到高級語言開發(fā)的程序中,?這就是Matlab?與高級語言的混合編程問題。VC+?+?是當(dāng)前Windows?下的主要編程語言之一,?它能方便地形成應(yīng)用軟件中所需要的各種用戶界面和工具并直接與系統(tǒng)及底層硬件交換數(shù)據(jù)。用VC++開發(fā)的系統(tǒng)具有容易維護(hù)升級、界面友好、代碼效率高、執(zhí)行速度快等一系列優(yōu)點(diǎn),?因此已成為目前應(yīng)用軟件開發(fā)中廣泛采用的主要工具之一因此,?如何將Matlab?與VC++進(jìn)行有效的混合編程廣受工程科研人員的關(guān)注。解決這個問題,?不僅能更好地發(fā)揮Matlab?強(qiáng)大的功能
4、,?還能快速地進(jìn)行軟件開發(fā),?尤其是當(dāng)軟件開發(fā)中需要實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)算法、圖形處理時尤為迫切。研究VC+?+?與Matlab?的混合編程具有很大的實(shí)際意義。MATLAB?與Visual?C++結(jié)合的方法有多種,?但其實(shí)用程度與范圍不同。常用的方法有:(?1)?將Matlab?程序編譯成C/C++源文件并嵌入VC++;(?2)?在C/?C++程序中利用Matlabengine?調(diào)用Matlab?函數(shù);(?3)?在C/C++程序中直接使用Matlab?C/C++?Math?Library;?(4)將.m文件編譯成*.dll文件嵌入到VC++的程序中。基于實(shí)用性、易用性的考慮,?本文主要討論第四種
5、方法。另外隨著Matlab?版本的升級,?原來的math?library已經(jīng)并入了Compiler?之中,?是否是mathworks?比較推崇DLL?的方式呢??本文通過一個簡單的例子來說明Matlab?和VC++混編的具體過程(?環(huán)境為Matlab6.5&VC++6.0)。1?Matlab編譯環(huán)境的設(shè)置為了能夠使用Matlab?的Complier?將*.m函數(shù)文件編譯為動態(tài)鏈接庫DLL,必須對Matlab的環(huán)境做出相應(yīng)的配置。具體做法如下:在Matlab?的Command?Window?下輸入命令mbuild?–?setup,并根據(jù)Matlab?的提示選擇合適的編譯器,筆者使用的是Mic
6、rosoft?Visual?C++.過程如下>>?mbuild?-setupPlease?choose?your?compiler?for?building?standalone?MATLAB?applications:Would?you?like?mbuild?to?locate?installed?compilers?[y]/n?Select?a?compiler:[1]?Lcc?C?version?2.4?in?D:MATLAB6P5syslcc[2]?Microsoft?Visual?C/C++?version?7.0?in?C:Program?FilesMicrosof
7、t?Visual?Studio?.NET[3]?Microsoft?Visual?C/C++?version?6.0?in?D:Microsoft?Visual?Studio[0]?NoneCompiler:?3Please?verify?your?choices:Compiler:?Microsoft?Visual?C/C++?6.0Location:?D:Microsoft?Visual?StudioAre?th