999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Matlab與VC混合編程的方法研究

2016-03-14 06:52:58
電子測試 2016年8期

李 雯

(寶雞職業技術學院電子信息工程系,721000)

?

Matlab與VC混合編程的方法研究

李 雯

(寶雞職業技術學院電子信息工程系,721000)

摘要:Matlab與VC是應用范圍較廣的編程語言,將二者進行混編是計算機軟件領域人士一直思考的重要課題。本文就如何實現二者的完美結合進行了深入的探討。

關鍵詞:Matlab;VC;混合編程

Matlab,其全稱為MATrix LABoratory,中文翻譯為矩陣實驗室,它是由美國The MathWorks公司出品的商業數學軟件,其主要功能是數值計算,而VC語言作為系統設計語言,在編寫計算機程序時有著廣泛的應用,然而,Matlab與VC語言由于各種原因的限制導致二者之間的編程無法共存,這給開發者帶來了不小的麻煩。近年來隨著編程方法的日益成熟,二者之間互不兼容的現象得到了改善,特別是Matlab2010的研發不僅保存了傳統的Matlab7.0編譯器基本構架穩定的優勢,而且開發了新的功能,使得混編程序向下兼容性越來越好,但二者混編以后仍然會出現結構不穩定的現象。混編設計都要遵循一定的原則,有著固定的混編方法,因此在進行混編時,只要掌握了一定的方法都可以按照需要選擇不同的混編模式。筆者經過長期的實踐,發現了以下三種方法進行混編會取得良好的效果

1 使用Matlab編譯器執行Matlab語言

Matlab編譯器可將Matlab程序編譯為獨立可執行程序,通過修改接口文件的方式實現在C/C++中調用Matlab文件。生成獨立運行的Matlab程序是使用Matlab編譯器編譯的文件最常用的一種方式。Matlab編譯器的主要功能是將Matlab程序編譯成其他語言可以調用的模塊或元素。Matlab編譯器的主要功能是將Matlab程序編譯為可執行程序或者動態鏈接庫,經過編譯后的可執行程序可以所有的計算機中運行,不管這臺計算機是否安裝了Matlab軟件,而編譯后的動態鏈接庫則成為C/C++開發人員的工具,使他們在任何一臺計算機中完成軟件的開發工作。除此之外架構在Matlab編譯器之上的Matlab Builder NE工具箱可以將Matlab程序編譯為Com組件供第三方程序調用。

傳統的Matlab 6.5以及以前的編譯器都將研究的重點放在了如何實現Matlab程序與C/C++程序之間的轉化,而Matlab 7.0及其以后的編譯器打破了這種觀念的桎梏,將MCR技術引用到設計中,將開發的重點放在了Matlab程序編譯為MCR可執行的程序。MCR是Matlab提供的一組動態鏈接庫,可以說是簡化版的Matlab,它支持Matlab語言的所有特征,這就意味著所有的Matlab程序都可以在MCR中得到編譯,這樣即使計算機未安裝Matlab也可以執行Matlab程序。

Matlab編譯器最常見的應用就是將其編譯為獨立可執行文件。采用MCC命令的-m選項可以將*.m函數文件直接編譯為獨立可執行文件。動態鏈接庫的編譯過程與獨立可執行文件的編譯過程類似,可以有兩種方法將*.m函數文件編譯為動態鏈接庫。①采用MCC編譯選項;②采用捆綁命令文件。

2 通過Matlab引擎直接執行Matlab語言

Matlab作為一個頗受歡迎的數學軟件,包括了多種數學運算程序,這樣當用戶需要數值運算的時候就可以運用Matlab引擎使用Matlab中的運算公式進行計算。Matlab的界面部分是由C/C++語言組成的,為用戶的使用提供了方便。

Matlab中蘊含著大量的API函數用于支撐Matlab操作的實現,這些函數都以eng開頭,因此掌握eng函數是實現Matlab 與V C++語言順暢兼容的前提和基礎。具體操作流程如下:

2.1Engine * engOpen(coust char * startcmb)

啟動Matlab引擎時要注意其操作環境,如果操作環境為Windows的話,就必須要將startcmd參數設置為NULL。

2.2int engClose(Engine * ep)

關閉Matlab引擎。

2.3int engEvalString ( Engine * ep , const char * string )

使 Matlab 引擎執行字符串 string中的表達方式

2.4int engPutVariable (Engine * ep , const char * nane , const mxArray * mp )

向Matlab引擎工作空間中引入一個新的Matlab 陣列變量,name選項這一欄填寫為引入Matlab中的名字。

2.5mxArry * engGetVariable ( Engine * ep , const

char * name )

從Matlab 引擎工作空間中復制名稱為 name 的變量。

2.6int engGetVisible ( Engine * ep , bool * value )

判斷Matlab引擎工作窗口是否可見。

C/C++通過Matlab引擎調用Matlab程序的這種方法必須要在計算機中存有Matlab軟件的環境下才能實現,脫離了這個環境,就無法實現C/C++語言與Matlab程序的兼容。

3 VC++中調用Matlab *·m函數編譯后的動態連接庫

通過Matlab編譯器的mcc 命令,可以將Matlab * ·m文件直接編譯為動態鏈接庫以供Visueil C++ 調用,以Plotsinc 函數為例,采用命令mcc-B csharedlib :libsincplot Sincplot ·m 將其編譯為動態鏈接庫。接著,創建一個 Visual C++ 單文檔的工程 testsincplot-dll ,然后通過選擇project settings link input菜單選項將庫文件libsincplot.lib、mclmcrrt. lib加入到Visual c++6.0工程中 ,其中libsincplot.lib為上述步驟中由Matlab編譯器生成的文件之一。

將libsincpiot.dll復 制 到Windows系 統 目 錄 或 者testsincpiot_dll工程的debug目錄下,將libsincplot.h、libsincplot.lib文件拷貝到testsincpiot_dll工程的源文件目錄下,并將其libsincplot.h文件添加到工程中。

4 結語

Matlab與C/C++混合程序設計的實踐性和技巧性較強,本文介紹了混合編程的三種方法,具體應用還要結合開發者的具體情況進行選擇,希望對從事程序開發讀者有所幫助。

參考文獻

[1]劉維著. 精通Matlab與c/c++混合程序設計[M]. 北京航空航天大學出版社

[2] 張亮,王繼陽著. MATLAB與c/c++混合編程[M]. 人民郵電出版社出版

課題名稱:省職教學會的課題《基于VC和MATLAB的仿真實驗平臺的設計》

課題編號:SZJYB2015033

Matlab and VC mixed programming method

Li Wen
(Baoji professional technology institute,Department of electronic and information engineering,721000)

Abstract:Matlab and VC is the programming language has a wide application scope,will be to mix both people in the field of computer software has been a important subject.In this paper,how to achieve the perfect combination of the two had in-depth discussion.

Keywords:Matlab;VC;Mixed programming

主站蜘蛛池模板: 特级毛片免费视频| 国产又色又刺激高潮免费看| 国产欧美成人不卡视频| 久久久久国产精品免费免费不卡| 国产精品无码制服丝袜| 亚洲天堂在线免费| av天堂最新版在线| 五月综合色婷婷| 国产三区二区| 国产日韩丝袜一二三区| 国产男女免费视频| 无码精油按摩潮喷在线播放| 亚洲不卡影院| 狼友视频国产精品首页| 国产精品无码在线看| 欧美成人综合视频| 成AV人片一区二区三区久久| 啪啪免费视频一区二区| 久久99热这里只有精品免费看| 国产欧美日韩综合在线第一| 国产幂在线无码精品| 欧美一级高清片久久99| 色悠久久久久久久综合网伊人| 欧美日韩福利| 久久精品66| 免费观看男人免费桶女人视频| 99热这里只有精品国产99| 国产理论一区| 久久精品电影| 伊人久久精品无码麻豆精品| 精品无码人妻一区二区| 91丝袜美腿高跟国产极品老师| 麻豆精品在线视频| 四虎精品国产AV二区| 欧美午夜小视频| 久久香蕉国产线看精品| 国产精品视屏| 亚洲欧洲日产国产无码AV| 精品久久久久成人码免费动漫| 伊人久久福利中文字幕| 国产精品护士| 丁香亚洲综合五月天婷婷| 四虎国产永久在线观看| 动漫精品啪啪一区二区三区| 国产成人综合亚洲欧洲色就色| 国产麻豆va精品视频| 婷婷六月在线| 无码精品国产VA在线观看DVD| 人妻精品久久久无码区色视| 综合亚洲色图| 国产永久无码观看在线| 国产免费自拍视频| 国产黄网永久免费| 国产高清在线观看91精品| 无码精油按摩潮喷在线播放| 国产极品粉嫩小泬免费看| 欧美激情一区二区三区成人| 人妻夜夜爽天天爽| 成人免费午夜视频| 2021最新国产精品网站| 丁香婷婷综合激情| 国产玖玖玖精品视频| 久久综合九色综合97网| 亚洲人成成无码网WWW| 国产第一页免费浮力影院| 日本www在线视频| 国产黄在线免费观看| 一本大道视频精品人妻| 国产一区二区三区夜色| 亚洲精品国产成人7777| 广东一级毛片| 欧美无遮挡国产欧美另类| 高清久久精品亚洲日韩Av| 国产农村妇女精品一二区| 婷婷色婷婷| 亚洲天堂网在线视频| 成人福利免费在线观看| 91麻豆精品视频| 一级爆乳无码av| 国产视频欧美| 亚洲日韩AV无码一区二区三区人| 免费一极毛片|