- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab的API接口技术【荐】.ppt
Matlab的API接口技术 Matlab及其应用 哈尔滨工业大学 动力工程控制与仿真研究所 鲍文 目录 API接口包含的内容: MEX文件 Mat文件的读写 作为客户运行的Matlab Matlab文件的编译方法 需求:运算速度、接口技术 一.C语言的设定过程 设定C语言的环境: 在matlab环境中或在它的目录下: mex –setup lcc是matlab安装的时候自动安装的c语言环境。 二. Mex文件 2.1 什么是mex文件?Matlab的扩展 Mex的扩展名 Alpha mexaxp IBM RS/6000 mexrs6 Linux mexlx Solaris mexsol Windows dll DOS mex 2.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=plhs[0] y=prhs[0] z=prhs[1] 调用的流程图 2简单的例子 包含文件:#include mex.h 输出错误信息并退出:mexErrMsgTxt 得到矩阵的行列数 mxGetM、mxGetN 判断矩阵的类型:mxIsDouble、mxIsComplex 生成双精度矩阵 mxCreateDoubleMatrix 获取矩阵的数组表达:*x=mxGetPr(plhs[0]) 获取矩阵的第一个数:x=mxGetScalar(plhs[0]) 调试:mex –g file.c 3 Fortran的方法 需要ms fortran power station 接口: subroutine mexFunction(nlhs, plhs, nrhs, prhs) integer plhs(*), prhs(*) integer nlhs, nrhs 三、Mat文件的读写 matOpen 打开mat文件 matClose 关闭mat文件 matGetDir 获得mat文件中数组的列表 matGetArray 从mat文件中读一个数组 matPutArray 向mat文件中写一个数组 matGetNextArray 从mat文件重读下一个数组 matDeleteArray 从mat文件中删医数组 举例 Windows下的编译方法 mex -f matlab\bin\win32\mexopts\topts.bat pathname\matcreat.c Opts.Bat 包含有: df50engmatopts.bat DIGITAL Visual Fortran watengmatopts.bat, wat11engmatopts.bat, bccengmatopts.bat, msvc50engmatopts.bat, msvcengmatopts.bat 四、控制matlab运行 4.1 sendkey方式 vb中有函数 sendkey 4.2 Matlab Engine 方式 engOpen 开始 MATLAB engine engClose 关闭 MATLAB engine engGetArray 从MATLAB engine获取一个矩阵 engPutArray 向MATLAB engine送一个矩阵 engEvalString 执行MATLAB命令字符串 engOutputBuffer 获取MATLAB 文本输出 举例 Windows下的编译方法(同读mat文件) mex –f matlab\bin\opts.bat filename.c df50engmatopts.bat DIGITAL Visual Fortran watengmatopts.bat, wat11engmatopts.bat, bccengmatopts.bat, msvc50engmatopts.bat, msvcengmatopts.bat 其它的方法 1、DDE 2、AcitveX Matlab /regserver 注册为一个ActiveX服务器 使用标准的ActiveX方法可以调用matlab的运行 五、m文件编译 这一部分内容在compiler工具箱中 5.1 编译为mex文件 mcc -x filename 注意: load(file,’a’,’b’,’c’)可以 load file不可以 Load(file,a,b,c,
文档评论(0)