?? matlab與vc集成.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0046)http://www2.ccw.com.cn/01/0151/c/0151c05_2.asp -->
<HTML><HEAD><TITLE>計算機世界網-周報全文- Matlab與VC集成</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE>.a14 {
FONT-SIZE: 14px; LINE-HEIGHT: 20px; TEXT-INDENT: 25px
}
.f {
COLOR: #0f3ccd; FONT-SIZE: 18px
}
IMG {
BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-RIGHT: 0px; BORDER-TOP: 0px
}
TD {
FONT-SIZE: 12px; font-fammily: verdana,宋體
}
P {
FONT-SIZE: 12px; font-fammily: verdana,宋體
}
A:link {
COLOR: black; TEXT-DECORATION: none
}
A:visited {
COLOR: #80006f; TEXT-DECORATION: none
}
A:hover {
COLOR: black; TEXT-DECORATION: underline
}
</STYLE>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=2>
<CENTER>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=752>
<TBODY>
<TR>
<TD vAlign=bottom>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD vAlign=top><IMG height=69 src="Matlab與VC集成.files/ccwlogo.gif"
width=207></TD></TR>
<TR>
<TD height=27 vAlign=top><IMG height=27
src="Matlab與VC集成.files/week.gif" width=207></TD></TR></TBODY></TABLE></TD>
<TD height=88 vAlign=bottom width=545>
<TABLE bgColor=#444ab6 border=0 cellPadding=0 cellSpacing=0 width=545>
<TBODY>
<TR>
<TD bgColor=#ffffff height=25 vAlign=bottom><IMG border=0 height=21
src="Matlab與VC集成.files/top.gif" useMap=#Map width=560></TD></TR>
<TR>
<TD align=middle height=67 vAlign=center><A
href="http://www.ccw.com.cn/search" target=_blank><IMG border=0
src="Matlab與VC集成.files/esearch.gif"></A></TD></TR>
<TR>
<TD bgColor=#ffffff height=1></TD></TR>
<TR>
<TD bgColor=#91bbff height=1></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD bgColor=#91bbff colSpan=2>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD align=middle width="26%">2002年9月29日</TD>
<TD class=V12><A href="http://www2.ccw.com.cn/a/a.asp">綜合新聞</A> /</TD>
<TD class=V12><A
href="http://www2.ccw.com.cn/b/b.asp">產品與技術</A> /</TD>
<TD class=V12><A
href="http://www2.ccw.com.cn/c/c.asp">應用與方案</A> /</TD>
<TD class=V12><A
href="http://www2.ccw.com.cn/d/d.asp">網絡與通信</A> /</TD>
<TD class=V12><A
href="http://www2.ccw.com.cn/e/e.asp">市場與渠道</A> /</TD>
<TD class=V12><A
href="http://www2.ccw.com.cn/f/f.asp">管理與職場</A></TD></TR></TBODY></TABLE>
<TR>
<TD colSpan=3 height=5 vAlign=top><IMG border=0 height=5
src="Matlab與VC集成.files/1ptrans.gif" width=1></TD></TR>
<TR>
<TD bgColor=#000000 colSpan=3 height=1 vAlign=top><IMG border=0 height=1
src="Matlab與VC集成.files/1ptrans.gif" width=1></TD></TR>
<TR>
<TD colSpan=3 height=5 vAlign=top><IMG border=0 height=5
src="Matlab與VC集成.files/1ptrans.gif" width=1></TD></TR></TBODY></TABLE><MAP
name=t><AREA coords=8,0,56,18 href="http://www.ccw.com.cn/" shape=RECT><AREA
coords=64,2,159,18 href="http://www.ccw.com.cn/news1/" shape=RECT><AREA
coords=173,0,268,18 href="http://www.ccw.com.cn/produ/" shape=RECT><AREA
coords=278,2,376,19 href="http://www.ccw.com.cn/app/" shape=RECT><AREA
coords=385,3,480,19 href="http://www.ccw.com.cn/net/" shape=RECT><AREA
coords=491,2,585,19 href="http://www.ccw.com.cn/market/" shape=RECT><AREA
coords=23,22,86,40 href="http://www.ccw.com.cn/work/" shape=RECT><AREA
coords=101,22,176,40 href="http://www.ccw.com.cn/serv/online/"
shape=RECT><AREA coords=188,22,269,40 href="http://www.ccw.com.cn/game/"
shape=RECT><AREA coords=279,22,348,40 href="http://www.ccw.com.cn/search/"
shape=RECT><AREA coords=359,23,417,40 href="http://www3.ccw.com.cn/"
shape=RECT><AREA coords=430,24,576,40 href="http://www2.ccw.com.cn/"
shape=RECT></MAP><MAP name=Map0><AREA coords=0,0,66,21
href="http://www2.ccw.com.cn/a/a.asp" shape=RECT><AREA coords=95,1,166,24
href="http://www2.ccw.com.cn/b/b.asp" shape=RECT><AREA coords=200,1,271,23
href="http://www2.ccw.com.cn/c/c.asp" shape=RECT><AREA coords=303,1,380,22
href="http://www2.ccw.com.cn/d/d.asp" shape=RECT><AREA coords=417,1,490,22
href="http://www2.ccw.com.cn/e/e.asp" shape=RECT><AREA coords=521,1,600,24
href="http://www2.ccw.com.cn/f/f.asp" shape=RECT></MAP><MAP name=Map><AREA
coords=19,0,64,19 href="http://www.ccw.com.cn/" shape=RECT><AREA
coords=68,0,145,19 href="http://www.ccw.com.cn/news1/" shape=RECT><AREA
coords=150,0,219,19 href="http://www.ccw.com.cn/center/" shape=RECT><AREA
coords=220,0,300,19 href="http://www.ccw.com.cn/work/" shape=RECT><AREA
coords=305,1,368,19 href="http://www.ccw.com.cn/search/" shape=RECT><AREA
coords=371,0,418,19 href="http://www3.ccw.com.cn/" shape=RECT><AREA
coords=420,0,550,19 href="http://www2.ccw.com.cn/" shape=RECT></MAP>
<TABLE align=center width=680>
<TBODY>
<TR>
<TD align=middle><BR>
<H2><FONT color=#0f3ccd>Matlab與VC集成 </FONT></H2><FONT
class=f></FONT><BR><B>◆ 上海大學通信與信息工程學院 楊高波</B> <BR>
<HR color=#f46240 SIZE=1 width=660>
</TD></TR></TBODY></TABLE><BR>
<TABLE align=center width=620>
<TBODY>
<TR>
<TD class=a14>
<P
class=a14><U><I><B>Matlab是一個具有強大的矩陣運算、數據處理和圖形顯示功能的軟件,其輸出結果可視化,編程效率極高,極少的代碼即可實現復雜的運行,然而其邊解釋邊執行,運算效率較低,實現相同功能的代碼跟其他編程平臺相比運行時間相對較長,且不適合作為通用的編程平臺。因此,許多Matlab的應用程序需要使用諸如VC之類的通用編程平臺,實現Matlab與VC的混合編程,這樣有助于發揮Matlab和VC的各自優勢。
</B></I></U>
<P class=a14><B>集成的幾種實現方法 </B>
<P class=a14>為了實現混合編程,Matlab 5.0以后版本自帶了C語言編譯器(Compiler),
可以將M文件轉換為C-MEX或C/C++程序。根據Matlab是否運行,一般將Matlab與VC混合編程分為兩大類:Matlab在后臺運行和可以脫離Matlab環境運行。
<P
class=a14>1.Matlab引擎(Engine)采用客戶機/服務器(Client/Server)的計算方式,通過Windows的ActivcX通道和Matlab接口。在具體的應用中,VC的程序作為前端客戶機,通過調用Matlab
Engine在后臺與Matlab服務器建立連接,實現動態通信。這種方法實現較為簡單,不要求連接整個Matlab,只需要嵌入必要的Matlab
Engine庫,可大大地節省系統資源,但這種Matlab在后臺運行,運行效率低下。
<P
class=a14>2.Mideva是Mathtools公司推出的一種Matlab集成編譯開發平臺,提供對Matlab程序文件(M文件)的解釋執行和開發環境支持。經過簡單設置后Mideva可以將M源文件轉換為C/C++,然后添加到MSVC、C++
Builder的工程中。
<P class=a14>3. 另一種方法是先利用Mideva直接生成EXE文件(方法是啟動Mideva,在菜單“File->Compile
to exe”中,
選出需要轉換的M文件),然后在VC中通過Shell調用,常見的外部函數有shellexec()或winexec()。這種方法簡單方便,但運行時出現一個控制臺窗口,而且由于VC和Matlab之間不能交互,通用性差,僅適用于VC中調用Matlab實現圖形顯示的場合。
<P class=a14>4. 最新也是最方便的方法是通過Matlab 6.0 Add-in實現Matlab與VC的混合編程。
<P class=a14>以上方法1需要Matlab在后臺運行,方法2、3、4可以脫離Matlab環境運行。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -