|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 引言
. @7 @6 L! y' [( V: _; B. ^( R
; j f$ e- T1 r6 ~1 a- S" O$ d* fMatlab 是当前应用最为广泛的数学软件,具有强大的数值计算、数据分析处理、系统 分析、图形显示甚至符号运算等功能[1]。利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分析计算的效率[2][3]。但与其他高级程序[3]相比,Matlab 程序 是一种解释执行程序,不用编译等预处理,程序运行速度较慢[4]。7 E( Y0 m4 _2 i$ [7 C: H& d
& z- a: @/ N+ D6 k# Y/ \( v- C+ {
C/C++语言是目前最为流行的高级程序设计语言之一[5]。它可对操作系统和应用程序以 及硬件进行直接操作,用C/C++语言明显优于其它解释型高级语言,一些大型应用软件如 Matlab 就是用C 语言开发的。
4 H: O/ b. R& ~1 \; Z: G在工程实践中,用户经常遇到Matlab 与C/C++混合编程的问题。本文基于Matlab 6.5和VC6.0 开发环境,在Windows 平台下就它们之间的混合编程问题进行深入研究并举例说明。
; ], Y, `( ^+ T, j d& R/ W4 y- y9 A6 Q
2 Matlab 调用C/C++
* x; b& a8 b' H- r/ W1 o6 f6 v$ @! t: D: ]- w: Z# m
Matlab 调用C/C++的方式主要有两种:利用MEX 技术和调用C/C++动态连接库。
- _6 q7 B5 D! R& t
u/ R% I6 ]* F" D6 ~8 e' V$ A0 ?, k在Matlab 与C/C++混合编程之前,必须先对Matlab 的编译应用程序mex 和编译器mbuild进行正确的设置[1]:# g, _5 s- I; k6 A
对Matlab 编译应用程序mex 的设置:Mex –setup.) q# N6 ?' L- w! S5 F9 ~4 ^; b, D" V
对Matlab 编译器mbuild 的设置:Mbuild –setup.
4 S; v6 x* ^" Y ( m" N9 L: v" V6 Q
|
|