|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通过MEX文件可以在MATLAB中像调用内嵌函数一样调用现有的使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能解决MATLAB循环效率低的缺点,提高MATLAB环境中数据处理的效率。
% q& z4 R! `! R6 e! @
3 y, |8 `5 Q% i1 z& i) g+ ]( bMEX文件的后缀名为 .mexw32; s; h, o7 y- W0 ]" ]
( K; { v7 ?% ~4 CMEX文件的编写和编译需要两个基本条件:一是必须按照MATLAB应用程序接口组件和相关工具,二是要有C语言或Fortran语言的编译器。
) O, J& I; z1 E# x! E8 u. B* G7 Y# y a2 a9 s, Q7 l+ E
需要对MATLAB系统进行设置,使MATLAB系统知道使用系统的哪一个C语言编译器,以及其参数和路径。9 [* x; q' e2 d, n. }& T
8 [% z$ x4 S; y* N
MEX文件系统设置:
! Z$ a% G4 H; N. Y
% M$ e, F3 O4 B8 d>> mex –setup 按照提示进行,最后出现Done…系统配置完毕。9 S! G1 W; {- R" W
7 b0 U+ a% U; f1 t8 O
C语言MEX文件的建立
: z& ?& R, n. v0 J q1 A! e3 p! y9 i" J* T: e' Y3 C: Z
C语言MEX文件的建立8 k; J4 T" Q4 E
2 e+ L4 n, r: J- k3 ~8 L6 S1. MEX文件的结构
9 N7 @8 @2 N( ]5 `- H% ?
1 x, ?, s% X& e U% ~% @& Ca) 计算子程序
1 r2 l+ e4 n5 u0 h Z% l4 e* u
; y K- p+ {3 Rb) 入口子程序,void mexFunction(int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[]) { /*用户特定的代码….*/ }( {$ K# ? y. {9 O; p
2 h7 M# q4 E* n
2. 创建timestwoalt.c
0 u) c- ?1 l7 @6 |% `" r' F8 d) ` D" v5 g7 M P5 f1 p7 Z+ q
8 x: J0 e# S5 @0 O
$ Q# y% X5 A) U/ U+ ^; Q# P2 s+ L# {, q' ?. ^
) q% Z A6 Y" Q |
|