資源描述:
《VC與MATLAB混合編程技術(shù)研究.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、萬方數(shù)據(jù)第28卷第9期計(jì)算機(jī)工程2002年9月V01.28他9ComputerEngineeringSeptember2002·開發(fā)研究與設(shè)計(jì)技術(shù)·文章編號:1000--3428(2002)09--0269--03文獻(xiàn)標(biāo)識碼:A中圈分類號:TP311.52VC++與MATLAB混合編程技術(shù)研究郭虹,薄云飛,林冬(信息工程人學(xué)信息技術(shù)學(xué)院,鄭州450002)搞要:論述了在V“+環(huán)境下如何充分利用Matlab強(qiáng)大的數(shù)據(jù)分析處理和數(shù)學(xué)計(jì)算的功日B進(jìn)行混臺(tái)編程的問題,以期達(dá)到簡單、快速進(jìn)行軟件開發(fā)的目的n介紹yVC++-與Matlab混臺(tái)編程的3種方法,并
2、對幾種方式進(jìn)行特點(diǎn)分析和比較,提出了較為有效和方便的打式。關(guān)t詞:Matlab.V“十很臺(tái)編程,引擎,MATCOMResearchonMulti—languageProgrammingTechnologyofVC++withMatlabGUOHong.BOY咖fei.LINDong(InformationTechnologyInstitute,PLAInformationEngineeringUniversit,,Zhengzhou450002)[AhstractlTinspaperdescribestheprincipleofmulti-lang
3、uageprogrammingofVc++withMatlah,introducescorrespondingmethodstodealwithit.a(chǎn)ndgivestherelevantcodesfordemonstration.Finally,itcomparesthreemethodscharacteristicandgivesauthors。suggest.【KeywordslMaflab;Vc++;Multi-languageprogramming;Engine;MATCOMMatlab作為當(dāng)今世界上應(yīng)用最為廣泛的數(shù)學(xué)軟件,具有非常強(qiáng)大的
4、數(shù)值計(jì)算、數(shù)據(jù)分析處理、系統(tǒng)分析、圖形顯示甚至符號運(yùn)算的功能。它是一個(gè)完整的數(shù)學(xué)平臺(tái),在這個(gè)平臺(tái)上.用戶只需寥寥數(shù)語就可以完成十分復(fù)雜的功能,大大提高丁工程分析計(jì)算的效率。但是Matlab強(qiáng)大的功能只能在它所提供的平臺(tái)上才能使用,即用戶必須在安裝Matlab系統(tǒng)的機(jī)器上才能執(zhí)行+m文件。這樣當(dāng)用戶需要在Matlab下已開發(fā)完畢的復(fù)雜算法應(yīng)用到高級語言開發(fā)環(huán)境下時(shí)就帶來了問題,是特現(xiàn)成的東西集成高級語言開發(fā)的程序中呢?還是用高級語言再重新實(shí)現(xiàn)一遍?顯然大家所期望的是減少工作罱,最好能將Matlab下開發(fā)好的程序或函數(shù)直接應(yīng)用到高級語言開發(fā)的程序中,這
5、就是Matlab與高級語言的混合編程問題。解決這個(gè)問題,不僅能更好地發(fā)揮Matlab強(qiáng)大的功能,還能快速地避行軟件開發(fā),尤其是當(dāng)軟件開發(fā)中需要實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)算法時(shí)尤為迫切。微軟公司的Vc++作為一種cH語言的開發(fā)平臺(tái)廣受用戶的歡迎和好評,其具有時(shí)下較為流行的可視化開發(fā)軟件的所有特點(diǎn),能夠Jf發(fā)出功能強(qiáng)大、界面友好的軟件,其本身具有c和“+語言強(qiáng)大的編程處理能力,使得使用Vc++開發(fā)的用戶越來越多。在工程科研領(lǐng)域,人們常采用Matlab進(jìn)行復(fù)雜的算法研究,有時(shí)需要將Matiab開發(fā)好的算法運(yùn)用到Vc++所開發(fā)的程序中,如何將vc++與Matlab進(jìn)行
6、有效的混合編程廣受工程科研人員的關(guān)注。作者對掘臺(tái)編程技術(shù)進(jìn)行了深入,細(xì)致的研究.有如下3種方法町行。1利用Matlabi§l擎該方法采月{客戶和服務(wù)器計(jì)算方式,利用Matlab弓l擎將Matlab和vc++聯(lián)系起來。在運(yùn)用中,Vc十+環(huán)境下開發(fā)的程序作為客戶端,Matlab作為本地的服務(wù)器。Vc++程序向Matlab日.1擎?zhèn)鬟f命夸和數(shù)據(jù)信息,并從matlabi31擎接收數(shù)據(jù)信息。Matlab引擎提供了如下幾個(gè)函數(shù):engOpen,engGetArray,engPutArray,engEvaString,engOutputBuffer,engclo
7、se與客戶進(jìn)行交互。作為示例,給出一段Vc++代碼,示范如何啟動(dòng)Mat/ab引擎,Vc++程序和Mallab如何進(jìn)行數(shù)據(jù)交換,如何利用Matlab強(qiáng)大的圖形處理功能進(jìn)行三維圖形的顯示。(1)條件Marlab51以上版本Vc++5.0以上版本(2)出于用到Matlab=JI擎,需要在用到引擎的+.cpp文件中加入“engineh”和“mathh”兩個(gè)頭文件,并對Vc++的環(huán)境進(jìn)行設(shè)置:選擇Tools菜單的options項(xiàng),在Directories選項(xiàng)卡中對Includefiles增J/1]engineh所在的具體路徑。(3)使用Matlab,JI擎v
8、oidCSpaceArrayView::OnUseMadabEn#ne(CSpaceArrayDoc+pDoc)Ⅳ打開Ma