基于MATCOM的VC++與MATLAB混合編程

基于MATCOM的VC++與MATLAB混合編程

ID:41033120

大?。?0.00 KB

頁數(shù):4頁

時間:2019-08-14

基于MATCOM的VC++與MATLAB混合編程_第1頁
基于MATCOM的VC++與MATLAB混合編程_第2頁
基于MATCOM的VC++與MATLAB混合編程_第3頁
基于MATCOM的VC++與MATLAB混合編程_第4頁
資源描述:

《基于MATCOM的VC++與MATLAB混合編程》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫

1、基于MATCOM的VC++與MATLAB的混合編程(都是單向的)1.引言VC++是Windows平臺下流行的可視化應用程序開發(fā)環(huán)境之一,它為軟件開發(fā)人員提供了完整的編輯、編譯和調試工具以及建立在Win32API基礎上的MFC類庫,可以有效縮短Windows應用程序的開發(fā)周期。用VC++開發(fā)出的程序具有容易維護、界面友好、執(zhí)行速度快等優(yōu)點。用VC++開發(fā)工程技術方面的程序時,當涉及矩陣運算或數(shù)據(jù)可視化,工程技術人員不得不編寫大量繁瑣的代碼。因此,Matlab與VC++混合編程可以吧Matlab在數(shù)值計算、算法設計以及數(shù)據(jù)可視化等領域的優(yōu)勢與VC++有機結合在一起

2、,可以提高程序處理的效率和穩(wěn)定性,同時也大大減少編寫算法代碼的工作量,提高工作效率。2.常用方法(1)MatlabCompilerMatlabCompiler是Matlab自帶的編譯器,可以通過設置mcc命令的選項,將m文件編譯成動態(tài)鏈接庫文件、C/C++文件、獨立可執(zhí)行應用程序等。MatlabCompiler將m文件轉化成獨立應用程序過程中的C/C++文件,原則上可以被其他C/C++代碼調用。但是這種方法不能處理嵌套調用其他m文件的m文件,不支持Matlab對象,不能編譯Matlab的一些內聯(lián)函數(shù),并且轉換代碼的可讀性較差。(2)¨MatlabCombuil

3、derCOM是ComponentObjectModule的簡稱,是一種通用對象接口,任何語言只要按照這種接口標準,就可以實現(xiàn)調用。Matlab的Combuilder把Matlab編寫的程序做成COM組建,供其他語言調用。該方法實現(xiàn)簡單,通用性強,而且?guī)缀蹩梢允褂肕atlab的任何函數(shù),因此在程序較大、調用工具箱函數(shù)或調用函數(shù)較多時推薦使用。(3)通過MatlabEngine方式MatlabEngine采用客戶機/服務器模式,C/C++程序作為前臺客戶機,Matlab作為計算引擎,利用Engine實現(xiàn)Matlab的強大功能,引擎程序和C++程序各作為一個進程單獨

4、運行,通過進程間的通信機制進行交互。這種方法,需要在機器上安裝Matlab軟件,而且程序執(zhí)行效率低。(4)直接調用MatlabC/C++MathLibrary數(shù)學函數(shù)庫Matlab中提供了可以供C/C++語言調用的C/C++數(shù)學函數(shù)庫,在VC++中可以直接使用這些函數(shù)。但使用這種方法調用Matlab的工具箱函數(shù)有很大困難,適合對C/C++語言比較熟悉的用戶使用,并且不支持Matlab中豐富的圖形句柄處理函數(shù)。(5)Matlab中調用C程序-MEX文件一般形式的C源代碼程序并不能直接被編譯成MEX文件,只有按照約定格式編寫的C源代碼文件才能轉化為有效的MEX文件

5、。(參見北航出版的《精通Matlab與CC++混合程序設計》)(6)¨使用Matcom工具Matcom是MatTools公司開發(fā)的一個基于C++矩陣函數(shù)庫Matrix的轉換Matlab的m文件到CPP文件的程序,它可將Matlab的源代碼編譯成同等功能的C++源代碼,既保持了Matlab的優(yōu)良算法,又保持了C++的執(zhí)行效率高的優(yōu)勢。Matcom軟件平臺本身的功能相當強大,提供了近千個Matlab的基本功能函數(shù),通過必要的設置,就可以直接實現(xiàn)與C++的混合編程,而不必再依賴Matlab。同時,Matcom還能夠將Matlab函數(shù)或者編寫的Matlab程序轉化為

6、C++形式的DLL,它與VC++有良好的接口,只要包含必要的庫文件和頭文件即可實現(xiàn)對Matlab函數(shù)的調用,而無需運行Matlab。Matcom轉換過程簡單,不僅可以轉換獨立的腳本文件,也可以轉換嵌套腳本文件,可以方便的生成動態(tài)鏈接庫文件和可執(zhí)行文件,它還支持一定的圖形顯示,生成代碼的可讀性好。Matcom可以通過插件的形式有機的嵌入VC++開發(fā)環(huán)境(即VisualMatcom),實現(xiàn)可視化編程,利用VisualMatcom插入m文件到VC++工程中可自動實現(xiàn)所需庫文件、頭文件、CPP文件的連接及編譯環(huán)境的設置,如果出現(xiàn)編譯錯誤,直接修改m文件即可。利用Mat

7、com可以在VC++中直接書寫類Matlab和Matcom語句實現(xiàn)Matlab與C的混合編程。此方法的缺陷是不能涉及Matlab的內部類,對于Matlab中struct類不支持將Matcom4.5中的ago4501.dll和v4501v.dll放在工程目錄下,即可脫離Matcom4.5實現(xiàn)運算和繪圖。參見:《MathToolsLtd.MIDEVAMATCOM&VisualMATCOMuser’sguideV4.5release》《MathToolsLtd.UsingVisualMatixLIBinMFCapplication[EB].MathToolsLtd,

8、1999》《MathToolsLtd.

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。