|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通过MEX文件可以在MATLAB中像调用内嵌函数一样调用现有的使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能解决MATLAB循环效率低的缺点,提高MATLAB环境中数据处理的效率。( t/ n" O' m9 A5 y% s* E4 h
y, c+ G9 w4 x2 w7 U& N, I% ^
MEX文件的后缀名为 .mexw32
5 E/ x. y$ m$ q+ S- q9 ~* ], V$ y
) F7 O; q" M' z. A4 L& S' N& yMEX文件的编写和编译需要两个基本条件:一是必须按照MATLAB应用程序接口组件和相关工具,二是要有C语言或Fortran语言的编译器。4 P* H0 d6 p0 d j* n0 f2 S
) U. w) v+ J# [6 H4 d需要对MATLAB系统进行设置,使MATLAB系统知道使用系统的哪一个C语言编译器,以及其参数和路径。% L% c8 R1 [- [2 {& x. |
& ?9 ?2 x7 _: n) lMEX文件系统设置:
. ~" x& Q2 A$ C7 `1 s; l& y1 b; r# x/ K6 U) R
>> mex –setup 按照提示进行,最后出现Done…系统配置完毕。" j+ N6 ^ T" G' W: _* {% X# D; x
) h: t7 _8 o) H7 X8 Y8 p) S7 J0 BC语言MEX文件的建立
6 d5 v$ k2 m3 H3 C$ s N$ L, I3 h. z/ n* q/ Q9 D8 |
C语言MEX文件的建立$ ^0 X5 h' a8 X; [0 s
7 ^6 ]9 M/ J3 {8 c
1. MEX文件的结构
( ^" [7 ]) ]/ K. [8 r A5 ~6 v% D. j5 r2 y1 H
a) 计算子程序5 r C( w" B9 a/ [2 q
' Q6 B5 R- l T% X3 i
b) 入口子程序,void mexFunction(int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[]) { /*用户特定的代码….*/ }
* W$ S8 e5 }( J- n2 g) j9 C% q: p& r; j' q, u
2. 创建timestwoalt.c0 D% |! e. q. z$ o
8 z* m. i( z+ N5 Q/ V( Y2 h
$ {. L; ]% z+ d6 t- ?5 o- ~5 [. r
) F$ u* r9 x3 I R) v) ]$ Z
, u7 y, @& w+ O X# W9 v t
# b& U; k+ U- Z) U7 i |
|