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

主站蜘蛛池模板: 99福利视频导航| 亚洲综合精品第一页| 少妇人妻无码首页| 国产精品福利社| 四虎综合网| 九九精品在线观看| 极品私人尤物在线精品首页| 91网红精品在线观看| 一级毛片在线直接观看| 蝌蚪国产精品视频第一页| 久久久久九九精品影院| 福利国产微拍广场一区视频在线| 伊人久久大香线蕉aⅴ色| 丁香六月综合网| 伊人91在线| 国产91麻豆免费观看| 伊人精品视频免费在线| 亚洲欧美日韩色图| 国产精品一区二区在线播放| 综合成人国产| 黄色网页在线观看| 中文字幕精品一区二区三区视频| 久久香蕉国产线看精品| 日韩少妇激情一区二区| 国产欧美日韩视频一区二区三区| 日韩美毛片| 国产美女在线观看| 欧美成人在线免费| 亚洲浓毛av| 国产爽歪歪免费视频在线观看 | 国产免费高清无需播放器| 亚洲中文精品久久久久久不卡| 国产高颜值露脸在线观看| 亚洲中文精品久久久久久不卡| 91国内在线观看| 第九色区aⅴ天堂久久香| 日韩精品亚洲人旧成在线| 91美女视频在线| 欧美久久网| 国产精品一区在线麻豆| 欧美伦理一区| 中国一级特黄大片在线观看| 999国内精品视频免费| 亚洲美女操| 亚洲第七页| 自拍偷拍欧美日韩| 老色鬼久久亚洲AV综合| 欧美区国产区| 亚洲成aⅴ人在线观看| 国产91av在线| 高潮爽到爆的喷水女主播视频| 国产成人亚洲无码淙合青草| 激情爆乳一区二区| 精品伊人久久久香线蕉| 国产一区二区人大臿蕉香蕉| 日韩欧美在线观看| 蝴蝶伊人久久中文娱乐网| 伊人成人在线视频| 亚洲精品爱草草视频在线| 福利小视频在线播放| 五月婷婷激情四射| A级毛片无码久久精品免费| 亚洲成av人无码综合在线观看| 欧洲亚洲一区| 色综合中文| 再看日本中文字幕在线观看| 国产流白浆视频| 免费中文字幕在在线不卡| 国产在线小视频| 久久精品国产亚洲麻豆| 欧美福利在线| 色成人综合| 国产精品三级专区| 久久国产精品麻豆系列| 欧美日本视频在线观看| 国产亚洲精品va在线| 1级黄色毛片| 中文字幕在线日本| 欧美高清国产| 婷五月综合| 中文字幕在线日本| 99ri国产在线|