Matcom是mathTools公司推出的一個能將M文件轉化成相同功能C++代碼的工具。相比Matlab自帶的編譯器Compiler,用Matcom轉化代碼要簡單和方便 得多。本文將結合作者編程經驗,以VC6.0和Matcom為例,詳細介紹如何利用Matcom進行VC與Matlab的聯合編程。
Matcom安裝安裝Matcom前要已求安裝VC6.0。在安裝過程中出現選擇編譯器對話框,選擇“是”(圖一)。出現選擇是否安裝Matlab時,選“否”。其他選項采用默認設置。Matcom可以獨立於Matlab運行,但需要外部的C++編譯器,指定Matlab的位置是為了讓編譯文件中需要的一些系統函數找到路徑用的。
圖一
安裝完成後,啟動界面MIDEVA(圖二)。MIDEVA集成開發環境包括命令行窗口、變量列表窗口、命令列表窗口和編譯鏈接信息窗口等幾部分,並有詳細的幫助文檔。
圖二
Matcom命令輸入方法與Matlab相同。如果安裝在中文版操作系統時,輸入命令前加一空格。(如圖三)。
圖三
下面詳細介紹如何將m文件編譯後放入VC中。
1、啟動MIDEVA ,File->New,新建如下Test1.m文件:x=1:0.1:10; y=sin(x); plot(x,y);
將文件保存(如圖四)。
圖四
m文件保存的默認位置為:matcom安裝目錄\matcom45,生成的C++文件保存的默認位置為:matcom安裝目錄\matcom45\Debug\,本例matcom安裝目錄為C盤 即 C:\matcom45\Debug\,在該目錄下將會產生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。
2、在VC中用MFC Wizard(exe)創建一個基於對話框名為Example的工程。
在面板上添加一個ID為IDC_BUTTON1按扭。
3、將C:\matcom45\Debug目錄下的Test1.cpp文件的內容拷貝到
void CExamleDlg::OnButton1()下,(如圖五)。
圖五
4、將C:\matcom45\lib\下的matlib.h 和v4501v文件和C:\matcom45\debug下的Test1.h文件拷貝到工程Example目錄下,然後在VC中將庫文件和頭文件加入到工程中:工程->添加工程->Files,選擇剛剛拷貝到Example目錄下的matlib.h 、v4501v和Test1.h文件(如圖六)。
圖六
5、在ExamleDlg.cpp中加入如下代碼:
#include "matlib.h"
#include "Test1.h"
6、在void CExamleDlg::OnButton1()中分別添加一個初始化類庫調用函數”initM(MATCOM_VERSION)”和一個結束類庫調用函數”exitM()”(如圖七)。
圖七
運行程序,點擊畫圖按扭(如圖八)。
圖八
程序的release版本需要ago4501.dll、v4501v.dll、v4501.lib三個文件的支持。以上只是介紹了VC和Matcom接口編程的一個簡單例子,功能並不完善,也遠遠達不到一個軟件所要求的水平,但只要熟悉了VC和Matcom接口編程的基本原理和方法,相信大家一定能夠編出優秀的軟件。
如果有什麼問題可以聯系我。我的QQ:44760299 郵箱:[email protected]
本文配套源碼