




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Matlab的API接口技术Matlab及其应用哈尔滨工业大学动力工程控制与仿真研究所鲍文http://matlab.turbo.hit.ed目录API接口包含的内容:MEX文件Mat文件的读写作为客户运行的MatlabMatlab文件的编译方法需求:运算速度、接口技术一.C语言的设定过程设定C语言的环境:在matlab环境中或在它的目录下:
mex–setuplcc是matlab安装的时候自动安装的c语言环境。二.Mex文件2.1什么是mex文件?Matlab的扩展
Mex的扩展名Alpha
mexaxpIBM
RS/6000
mexrs6Linux
mexlxSolaris
mexsolWindows
dllDOS
mex2.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.c3
Fortran的方法需要ms
fortran
power
station接口:subroutine
mexFunction(nlhs,
plhs,
nrhs,
printeger
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.ba<pathname>\matcreat.cOpts.Bat包含有:df50engmatopts.bat
DIGITAL
Visual
Fortranwatengmatopts.bat,
wat11engmatopts.bat,bccengmatopts.bat,msvc50engmatopts.bat,
msvcengmatopts.bat四、控制matlab运行4.1
sendkey方式–
vb中有函数sendkey4.2
Matlab
Engine方式engOpen开始MATLAB
engineengClose关闭MATLAB
engineengGetArray从MATLAB
engine获取一个矩阵engPutArray向MATLAB
engine送一个矩阵engEvalString执行MATLAB命令字符串engOutputBuffer获取MATLAB文本输出举例Windows下的编译方法(同读mat文件)mex
–f
<matlab>\bin\<opts.bat>
filename.df50engmatopts.bat
DIGITAL
Visual
Fortranwatengmatopts.bat,
wat11engmatopts.bat,bccengmatopts.bat,msvc50engmatopts.bat,
msvcengmatopts.bat其它的方法1、DDE2、AcitveXMatlab/regserver注册为一个ActiveX服务器使用标准的ActiveX方法可以调用matlab的运行五、m文件编译这一部分内容在compiler工具箱中5.1编译为mex文件mcc
-x
filename注意:load(file,’a’,’b’,’c’)可以load
file不可以Load(file,a,b,c,d)不可以不可以出现eval不支持的函数5.2编译为独立文件首先:mbuild-setupmcc
–m
filename.m需要的文件:•Application(executable)•
libmmfile.dll•libmatlb.dll•libmat.dll•libmx.dllibut.dll•libsgl.dll转化为c语言程序:mcc–c
filename.m在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学资源整合与秋季应用计划
- 2025年贵金属靶材项目发展计划
- 2025年面板封接玻璃合作协议书
- 2025年工业清洗清理设备:工业吸尘设备合作协议书
- 2025年电商大数据项目发展计划
- 强化互动反馈的按钮动画设计
- 小学生励志成长故事读后感
- 基因检测技术研发合同
- 2025年制动气室项目发展计划
- 智慧城市规划与建设协议
- 甘草种植技术课件
- 餐饮服务保障措施、食品卫生安全保障方案
- 钢筋工工艺与实习(第二版)课件汇总全书电子教案完整版课件最全幻灯片(最新)课件电子教案幻灯片
- 物业保洁及餐饮服务项目方案
- (新版教材)粤教粤科版六年级下册科学全册课时练(同步练习)
- TCETA 001-2021 演艺灯具型号命名规则
- c语言期末机考(大连理工大学题库)
- 煤矿从业人员考试题库全答案(word版)
- 2019年工程设计收费标准表
- (完整版)振幅调制与解调习题及其解答
- 政法书记在全县公安工作会议上的讲话
评论
0/150
提交评论