1、Matlab的API接口技术Matlab及其应用哈尔滨工业大学动力工程控制与仿真研究所 鲍文http:/1目录API接口包含的内容:MEX文件Mat文件的读写作为客户运行的MatlabMatlab文件的编译方法需求:运算速度、接口技术2一.C语言的设定过程设定C语言的环境:在matlab环境中或在它的目录下:mex setup lcc是matlab安装的时候自动安装的c语言环境。3二.Mex文件2.1 什么是mex文件?Matlab的扩展Mex的扩展名Alpha mexaxpIBM RS/6000 mexrs6Linux mexlxSolaris mexsolWindows dllDOS me
2、x42.2 用C语言编写mex文件1、mex文件的入口函数void mexFunction(/必须叫这个名字int nlhs,mxArray*plhs,/输出的变量int nrhs,const mxArray*prhs)/进入的变量 nlhs nrhs分别表示输出、输入的变量数目*plhs*prhs表示输出、输入的矩阵例如:x=fun(y,z)nlhs=1 nrhs=2 x=plhs0 y=prhs0 z=prhs15调用的流程图62简单的例子包含文件:#include mex.h输出错误信息并退出:mexErrMsgTxt得到矩阵的行列数 mxGetM、mxGetN判断矩阵的类型:mxIsD
3、ouble、mxIsComplex生成双精度矩阵 mxCreateDoubleMatrix获取矩阵的数组表达:*x=mxGetPr(plhs0)获取矩阵的第一个数:x=mxGetScalar(plhs0)调试:mex g file.c73 Fortran的方法需要ms fortran power station接口:subroutine mexFunction(nlhs,plhs,nrhs,prhs)integer plhs(*),prhs(*)integer nlhs,nrhs8三、Mat文件的读写matOpen 打开mat文件matClose 关闭mat文件matGetDir 获得mat文
4、件中数组的列表matGetArray 从mat文件中读一个数组matPutArray 向mat文件中写一个数组matGetNextArray 从mat文件重读下一个数组matDeleteArray 从mat文件中删医数组92024/1/30 周二10举例Windows下的编译方法mex-f binwin32mexopts matcreat.cOpts.Bat 包含有:df50engmatopts.bat DIGITAL Visual Fortranwatengmatopts.bat,wat11engmatopts.bat,bccengmatopts.bat,msvc50engmatopts.b
5、at,msvcengmatopts.bat 11四、控制matlab运行4.1 sendkey方式 vb中有函数 sendkey4.2 Matlab Engine 方式engOpen 开始 MATLAB engineengClose 关闭 MATLAB engineengGetArray 从MATLAB engine获取一个矩阵engPutArray 向MATLAB engine送一个矩阵engEvalString 执行MATLAB命令字符串engOutputBuffer 获取MATLAB 文本输出12举例Windows下的编译方法(同读mat文件)mex f bin filename.cdf
6、50engmatopts.bat DIGITAL Visual Fortranwatengmatopts.bat,wat11engmatopts.bat,bccengmatopts.bat,msvc50engmatopts.bat,msvcengmatopts.bat 13其它的方法1、DDE2、AcitveXMatlab/regserver 注册为一个ActiveX服务器使用标准的ActiveX方法可以调用matlab的运行14五、m文件编译这一部分内容在compiler工具箱中5.1 编译为mex文件mcc -x filename注意:load(file,a,b,c)可以load file
7、不可以Load(file,a,b,c,d)不可以不可以出现eval15不支持的函数165.2 编译为独立文件首先:mbuild-setupmcc m filename.m需要的文件:Application(executable)libmmfile.dll libmatlb.dll libmat.dll libmx.dll libut.dll libsgl.dll转化为c语言程序:mcc c filename.m在5.3.1中联结图形库mcc m B sgl fiename.m17六、RTW1、加速运行2、实时运行Windows下面需要watcom C 113、嵌入式运行方式 xPC工具箱可以在一张软盘上生成仿真系统182024/1/30 周二19