Matlab的API接口技术【荐】全文-综合论文-在线文档_第1页
Matlab的API接口技术【荐】全文-综合论文-在线文档_第2页
Matlab的API接口技术【荐】全文-综合论文-在线文档_第3页
Matlab的API接口技术【荐】全文-综合论文-在线文档_第4页
Matlab的API接口技术【荐】全文-综合论文-在线文档_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论