




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 visuaistudio與matlab協(xié)同編程方法研究 袁培燕+宋明陽摘要:visual studio(vs)與matlab協(xié)同編程技術(shù)充分結(jié)合了前者在程序設(shè)計方面的靈活性與后者強(qiáng)大的數(shù)學(xué)函數(shù)庫功能,優(yōu)勢互補(bǔ)。然而,該結(jié)合在工程實踐方面偏弱,不利于兩者的大規(guī)模應(yīng)用。針對該問題,文章基于vs與matlab協(xié)同編程的3種方案,通過具體實例詳細(xì)闡述兩者協(xié)同編程的實現(xiàn)步驟,分析了3種方案各自的優(yōu)缺點,以期降低初學(xué)者的學(xué)習(xí)門檻。關(guān)鍵詞:visual studio;matlab;協(xié)同編程;dll文件;com組件0引言visual studio(vs)是
2、一款面向?qū)ο蟮某绦蜷_發(fā)平臺,它通過生成程序框架減少編程人員的工作量,通過可視化的圖形開發(fā)控件設(shè)計簡潔美觀的軟件界面,并支持多種編程語言,具有較好的程序設(shè)計靈活性和用戶體驗友好性,但在數(shù)學(xué)運算和函數(shù)繪圖方面存在不足之處。matlab作為專業(yè)的數(shù)學(xué)軟件,具有高效的數(shù)學(xué)運算能力和強(qiáng)大的函數(shù)圖形處理能力,是實驗室中一款常用的專業(yè)軟件。然而,由于其專業(yè)性較強(qiáng)、用戶界面操作復(fù)雜,用戶的體驗友好度不高。在程序設(shè)計中,有效結(jié)合vs良好的用戶體驗性、程序設(shè)計靈活性和matlab強(qiáng)大的數(shù)學(xué)函數(shù)庫,可以充分發(fā)揮雙方的優(yōu)點。但現(xiàn)有的vs與matlab協(xié)同編程工作側(cè)重于相關(guān)學(xué)術(shù)理論知識,在工程實踐方面的應(yīng)用不夠深入。本
3、文針對matlab引擎法、dll文件法和com組件法3種方案,結(jié)合實例重點描述vs與matlab協(xié)同編程的具體操作方法和詳細(xì)步驟,最后通過對比實驗過程和實驗結(jié)果,闡述3種方案各自的優(yōu)點和不足。1.matlab與vs協(xié)同編程方法簡介1.1vs調(diào)用matlab引擎的方法matlab引擎是一組api函數(shù)接口,用戶可以使用這組接口以發(fā)送腳本命令的方式調(diào)用matlab中的函數(shù)。在具體實例中,c/c+程序作為前端,可以向作為后臺的matlab引擎發(fā)送控制命令,matlab引擎根據(jù)控制命令的種類做出不同的響應(yīng)。這種方法的實質(zhì)是activex控件調(diào)用matlab進(jìn)程。1.2vs調(diào)用dll文件的方法dll文件即
4、動態(tài)鏈接庫文件,是應(yīng)用程序的一部分。exe程序啟動時,與之對應(yīng)的dll文件會被調(diào)用。matlab自帶編譯器,用戶可以借助該編譯器把已經(jīng)編寫好的*m文件編譯為dll文件,然后在c/c+程序中直接使用dll文件中寫好的matlab函數(shù)。1.3vs調(diào)用com組件的方法com組件,即組件對象模型,是一種通用的對象接口模型,適用于任何語言。任何語言的程序通過生成com組件都可以被其他語言程序調(diào)用。而matlab的編譯器可以把用戶編寫的*m文件編譯為com組件,供其他平臺程序使用。2.matlab與vs協(xié)同編程的實現(xiàn)2.1實驗-matlab引擎法在vs2010中建立mfc工程,以向matlab引擎發(fā)送命令
5、的方式實現(xiàn)協(xié)同編程。2.1.1前期配置1)系統(tǒng)環(huán)境變量配置。在“我的電腦屬性高級環(huán)境變量用戶變量/系統(tǒng)變量path”選項中添加路徑:bin:binwin64。2)vs2010環(huán)境配置。(1)首先建立一個基于對話框程序的mfc工程,工程名為test。(2)設(shè)置工程目錄,設(shè)置方法如下:在“項目test屬性頁配置屬性vs2010目錄包含目錄”選項中添加extemkinclude;在“項目test屬性頁一配置屬性vs2010目錄庫目錄”選項中添加extemlibwin64/kmicrosoft;在“項目test屬性頁配置屬性c/c+一常規(guī)一附加包含目錄”選項中添加extemklibwin64haaic
6、rosoft和extemkinclude;在“項目test屬性頁配置屬性鏈接器>常規(guī)附加庫目錄”選項中添加extemlib和extemlibwin64hnicrosofl;在“項目test屬性頁配置屬性鏈接器>輸入>附加依賴項”選項中添加4個1ib文件,分別是libmx.1ib、libmat.1ib和libeng.1ib、mclmcrrt.1ib;在“項目test屬性頁平臺”選項中選擇x64選項(只針對64位版本的matlab)。2.1.2代碼編寫(1)在testdlg.cpp文件中添加#include“engine.h”。(2)在對話框界面上添加按鈕控件,為其增加消息響應(yīng)函
7、數(shù),代碼如下所示:2.1.3實驗結(jié)果編譯運行程序,單擊確定按鈕會彈出窗口,其中顯示了正弦函數(shù)和余弦函數(shù)的直角坐標(biāo)系圖形,如圖1所示。該方法雖然功能全面、編碼簡單,但exe程序運行時需要matlab在后臺運行,脫離不了matlab環(huán)境,造成了運行速度慢、程序執(zhí)行效率低的問題。2.2實驗二調(diào)用dll文件法將用戶自定義的*m文件通過matlab自帶的編譯器編譯為dll文件。在vs2010中建立基于對話框的mfc程序,然后調(diào)用dll文件中的matlab函數(shù)。2.2.1前期配置(1)實驗一的全部前期配置步驟。(3)配置matlab編譯環(huán)境并導(dǎo)出dll文件。在matlab的command window中輸
8、人mbuild-setup命令,選擇vs2010編譯器,并輸入y進(jìn)行確認(rèn);接下來,將current folder目錄修改為m文件所在的目錄,然后向command window輸入mcc-w cpplib:xinqpcafootball-t link:libxinqpcafootball.m命令(本文使用的m文件名為xinqpcafootball.m);完成以上步驟后,xinqpcafootball.m所在目錄中會產(chǎn)生庫文件所需文件,將這些文件全部復(fù)制到mfc工程目錄下。 (4)設(shè)置工程目錄。在“test屬性頁一配置屬性鏈接器輸入附加依賴項”選項中添加m文件編譯后生成的lib文件,如xinqpc
9、afootball.m文件編譯后生成的xinqpcafootball.lib文件。在“項目test屬性頁配置屬性鏈接器常規(guī)附加庫目錄”選項中添加。2.2.2代碼編寫在testdlg.cpp文件中添加頭文件#include”xinqpcafootball.h”。添加成功之后打開它可以找到用戶在*m文件中編寫的matlab函數(shù)的接口,如下所示:extem lib_xinqpcafootballcpp_api void mw-call-conv xinqpcafootball(int nargout,mwarray&f)在對話框界面上添加按鈕控件并增加消息響應(yīng)函數(shù),在其中調(diào)用該接口函數(shù),代碼
10、如下所示:void ctestdlg:onbnclickedok20mwarray a(1100,100,mxdouble_class);xinqpcafootballlnitializeo;xinqpcafootball(null,a);2.2.3實驗結(jié)果編譯運行程序,單擊確定按鈕會彈出窗口,其內(nèi)容為正弦函數(shù)和余弦函數(shù)的極坐標(biāo)圖形,如圖2所示。該方法生成的exe程序在運行時不需要啟動matlab,可以提高程序運行效率。但前期配置步驟較為復(fù)雜且易出錯。2.3實驗三調(diào)用com組件法通過matlab中自帶的編譯器將用戶自定義的*m文件編譯為com組件,在vs2010中建立基于對話框的mfc工程,然
11、后用該程序調(diào)用com組件實現(xiàn)協(xié)同編程。2.3.1前期準(zhǔn)備(1)創(chuàng)建community.m文件,其內(nèi)容為畫一個綠色的圓柱螺旋線,代碼如下所示:(2)在matlab的command window中輸入mbuild-setup命令,選擇vs2010編譯器的選項。(3)在command window中繼續(xù)輸入deploytool出現(xiàn)名為deployment project的界面,其中,name和location選項可以自定義,而type選項需要選擇generic com component;點擊ok出現(xiàn)名為generic com component的界面;點擊add classes并輸入類名,如輸入類
12、名為test;點擊add files添加*m文件,如添加community.m文件。點擊build圖標(biāo)開始生成com組件;生成成功后會在location目錄下生成文件夾,在該文件夾的src文件夾中可以找到調(diào)用com組件所需的3個文件:wmcomtypes.h、test idl.h、testidl_i.c。(4)建立基于對話框的mfc工程,在界面上添加按鈕并創(chuàng)建消息響應(yīng)函數(shù),將3個com組件文件復(fù)制到該工程目錄下。(5)在“項目test屬性頁配置屬性c/c+預(yù)編譯頭”選項中選擇“不適用預(yù)編譯頭”。2.3.2代碼編寫2.3.3實驗結(jié)果編譯運行程序,單擊確定按鈕會彈出窗口,內(nèi)容為一個圓柱螺旋線,如圖3所示。使用com組件的協(xié)同編程方法擁有較為簡單的前期配置步驟,并包含較為全面的matlab功能,也可以獨立于matlab環(huán)境運行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鐵氧體軟磁市場競爭狀況分析及投資戰(zhàn)略研究報告
- 2025-2030年中國重晶石市場運行狀況及前景趨勢分析報告
- 2025-2030年中國連接器制造市場發(fā)展趨勢與十三五規(guī)劃研究報告
- 2025-2030年中國超級活性炭行業(yè)市場運行動態(tài)及前景規(guī)模分析報告
- 2025-2030年中國臍橙行業(yè)運行狀況及發(fā)展趨勢預(yù)測報告
- 2025-2030年中國羊藿苷提取物行業(yè)發(fā)展?fàn)顩r規(guī)劃研究報告
- 2025上海市建筑安全員《A證》考試題庫及答案
- 2025-2030年中國電網(wǎng)企業(yè)信息化市場運營現(xiàn)狀及發(fā)展規(guī)劃分析報告
- 恩施職業(yè)技術(shù)學(xué)院《行政案例研習(xí)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長沙文創(chuàng)藝術(shù)職業(yè)學(xué)院《地球物理學(xué)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 干部選拔任用程序
- 部編人教版五年級下冊道德與法治簡答題歸納總結(jié)
- 保障性住房資格申請表
- 2023高二開學(xué)第一課《蛻變》-主題班會
- 口服降糖藥物分類詳解課件
- 二級生物安全實驗室設(shè)計建造與運行管理指南
- 圍手術(shù)期疼痛護(hù)理課件
- 外國新聞傳播史-張昆課件
- 圓圈正義:作為自由前提的信念
- 一次性纖維環(huán)縫合器
- 中華民族的形成與發(fā)展
評論
0/150
提交評論