資源描述:
《vc 與matlab混合編程的探討》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第23卷第2期計(jì)算機(jī)應(yīng)用與軟件Vol123,No.22006年2月ComputerApplicationsandSoftwareFeb.2006VC++與MATLAB混合編程的探討謝佩軍計(jì)時(shí)鳴張利(浙江工業(yè)大學(xué)機(jī)械制造及自動(dòng)化省部共建教育部重點(diǎn)實(shí)驗(yàn)室浙江杭州310014)摘要本文分析了MATLAB和VC++各自的編程優(yōu)缺點(diǎn),較為全面地列舉了VC++和MATLAB混合編程的各種方式,重點(diǎn)介紹并舉例說明了MEX文件與MATLAB引擎兩種結(jié)合途徑。通過VC++和MATLAB的協(xié)同工作,可以開發(fā)出功能強(qiáng)大且界面友好的軟件。關(guān)鍵詞VC++接口
2、MEX文件MATLAB引擎RESEARCHONCOMBINEDPROGRAMMINGOFVC++ANDMATLABXiePeijunJiShimingZhangLi(KeyLab.ofMinistryofEducationforProvincejointedMechanicalManufacture&Automation,ZhenjiangUniversityofTechnology,HangzhouZhejiang310014,China)AbstractThispaperanalyzesthestrongpointandshor
3、tcomingofVC++andMATLABprogrammingseparately,listingvariouscombinedprogrammingwaysbetweenVC++andMATLABroundly.TheMEXfileandMATLABengineareintroducedsignificantlyandillustrated.WiththecombinationofVC++andMATLAB,wecandevelopthesoftwarewithpowerfulfunctionsandfriendlyinter
4、face.KeywordsVC++InterfaceMEXfileMATLABengine用MATLABC/C++數(shù)學(xué)函數(shù)庫;(5)MATLAB計(jì)算引擎函數(shù)1引言庫。由于篇幅原因,下面將重點(diǎn)介紹(1)和(5)兩種方式。MATLAB是針對(duì)數(shù)值計(jì)算的交互式軟件,以其強(qiáng)大的數(shù)據(jù)2.1MATLAB應(yīng)用程序接口MEX文件處理能力和豐富的工具箱使得編程極為簡單,可大幅度縮短應(yīng)MEX文件是MATLAB調(diào)用別的語言編寫的程序或算法的用程序開發(fā)周期,提高編程效率。但是由于MATLAB是一種解接口,MEX接口使得MATLAB可以直接調(diào)用或鏈接由C或釋性
5、的語言開發(fā)平臺(tái),這就決定了它的執(zhí)行效率比較低。在很FORTRAN語言編寫的算法例程,從而可以提高計(jì)算效率。多時(shí)候僅靠MATLAB還是不能很好地完成任務(wù),許多其他語言MEX文件又稱為外部程序調(diào)用接口,通過它可以實(shí)現(xiàn)以下編寫的算法程序若要在MATLAB環(huán)境中運(yùn)行,還需要重新編寫功能:1)對(duì)于某些已有的C或FORTRAN子程序,可以通過M文件。VC++是Windows平臺(tái)下強(qiáng)有力的高級(jí)編程語言,能MEX方式在MATLAB環(huán)境中直接調(diào)用;2)在進(jìn)行大規(guī)模的數(shù)夠方便快速地開發(fā)出界面友好,執(zhí)行速度快,易于維護(hù)升級(jí)的軟據(jù)處理,比如影響MATLAB
6、執(zhí)行速度的循環(huán)體,可以編寫相應(yīng)件系統(tǒng)。然而VC++只提供了一些基本的數(shù)學(xué)函數(shù)庫,當(dāng)遇到的C或C++子程序完成相同的功能,并編譯程MEX文件,提高復(fù)雜的數(shù)值運(yùn)算時(shí),重新編寫程序代碼將大幅度延長軟件開發(fā)運(yùn)行速度;3)在對(duì)硬件操作時(shí),可以直接用MEX文件進(jìn)行訪周期,增加軟件開發(fā)成本。問,以彌補(bǔ)MATLAB的不足。MATLAB擁有獨(dú)立的數(shù)學(xué)函數(shù)庫,含有大量經(jīng)過反復(fù)測試2.1.1配置測試MEX文件的編寫與編譯需要具備兩個(gè)優(yōu)化了的數(shù)學(xué)函數(shù),同時(shí)提供了對(duì)C和C++等語言的函數(shù)接條件:一是要求安裝MATLAB應(yīng)用程序接口組件及其相應(yīng)的工口,用戶可以
7、方便地在VC++的集成開發(fā)環(huán)境IDE中調(diào)用。但具,另一個(gè)是要求有合適的C語言編譯器。要實(shí)現(xiàn)從M文件到MATLAB的應(yīng)用程序接口并不是很強(qiáng)大,它不能傳輸除了數(shù)字MEX文件的轉(zhuǎn)換,就必須先對(duì)M編譯器進(jìn)行正確配置。配置包之外的其它數(shù)據(jù),而VC++卻具有強(qiáng)大的程序接口,它能傳輸括兩個(gè)過程:1)根據(jù)外部編譯器的類型、軟件位置對(duì)M編譯器任何數(shù)據(jù),但其進(jìn)行復(fù)雜計(jì)算的能力不是很強(qiáng)。若將兩者結(jié)合進(jìn)行設(shè)置;2)利用MATLAB提供的標(biāo)準(zhǔn)文件對(duì)用戶配置加以驗(yàn)起來,協(xié)同工作,必將提高軟件開發(fā)效率。因此,有必要實(shí)現(xiàn)證。MATLAB與VC++的混合編程,為科研
8、與工程開發(fā)提供更為強(qiáng)在MATLAB命令窗中鍵入命令:mex2setup,然后根據(jù)提示大的技術(shù)支持。選擇編譯器類型(C/C++編譯器)以及編譯器的版本數(shù)。不同2VC++與MATLAB的結(jié)合方式的系統(tǒng)中,操作步驟可能稍有不同,但基本過程是