matlab数据接口技术,Matlab的API接口技术.ppt

Matlab的API接口技术

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 \bin\win32\mexopts\\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 \bin\ 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值