版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1MATLAB及应用
—第十章外部程序接口技术信息与通信工程学院MATLAB功能强大,开发效率高,但主要缺点是执行速度比较慢MATLAB提供了外部程序接口,允许MATLAB和其他应用程序进行数据交换,并提供了C/C++,FORTRAN数学和图形函数库,为在其他程序设计语言中调用MATLAB高效算法提供了可能。MATLAB提供的外部程序接口技术主要由三种MEX文件:是matlab环境下调用C、FORTRAN语言编写的应用程序模块。matlab计算引擎:在使用C、FORTRAN编程时可调用matlab函数库进行计算。MAT文件:实现matlab与C、FORTRAN语言程序间的数据交换MATLAB外部程序接口技术MATLAB不能在M文件中直接调用C语言程序MEX(MATLABExecutable)动态链接函数接口是MATLAB调用别的语言(包括C语言)编写的程序或算法的接口MEX文件是一种动态链接程序,MATLAB可以象调用M文件一样调用它Matlab与C语言程序的应用编程接口
MEX文件主要有以下几方面的应用:已经开发的C语言程序,则不必将其转化为M文件而重复劳动,通过添加入口程序mexFunction,可以由MATLAB调用。在MATLAB中,M文件的计算速度特别是循环迭代的速度远比C语言慢,因此可以把要求大量循环迭代的部分用C语言编写为MEX文件,提高计算速度。直接控制硬件,如A/D采集卡,D/A输出卡等,以用于数据采集或控制应用。
MEX文件MEX文件的源程序由两部分组成:计算子程序包含所有完成计算功能的程序代码,计算程序可以是普通的C语言程序,按照C语言规则编写即可入口子程序mexFunction在MATLAB系统与被调用的外部子程序间建立通信联系入口子程序的名字必须是mexFunction,调用格式为:voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,mxArray*prhs[])nlhs:输出参数数目
plhs:指向mxArray(MATLAB中所有数据都由mxArray定义)的输出参数的指针
nrhs:输入参数数目
Prhs:指向mxArray的输入数据的指针。MEX文件(续)mexFunction函数举例使用[a,b]=test(c,d,e)调用mex函数test时,传给test的这四个参数分别是
2,plhs,3,prhs
其中:
prhs[0]=c
prhs[1]=d
prhs[2]=e
plhs[0]=a
plhs[1]=b——注意:MEX文件的两个主要部分在使用中可以是独立的,也可以是组合在一起的。不管是哪一种情况,MEX文件都必须包含头文件"mex.h",以便正常申明入口程序。MEX文件(续)例:第一步:给出一个简单的C语言程序该程序的功能是将标量x加倍。
#include"math.h"
voidtimestwo(doubley[],doublex[])
{
y[0]=2.0*x[0];
return;
}
Matlab与C语言混合编程示例#include"mex.h"voidtimestwo(doubley[],doublex[]){y[0]=2.0*x[0];}
voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){double*x,*y;intmrows,ncols;
/*检查正确的参数数目*/if(nrhs!=1){mexErrMsgTxt("需要一个输入参数.");}elseif(nlhs>1){mexErrMsgTxt("输出参数太多");}Matlab与C语言混合编程示例(续)/*输入变量必须是非复数类型的标量.*/mrows=mxGetM(prhs[0]);ncols=mxGetN(prhs[0]);if(!mxIsDouble(prhs[0])||mxIsComplex(prhs[0])||!(mrows==1&&ncols==1)){mexErrMsgTxt("输入变量必须是非复数类型的标量.");}
/*为返回参数创建矩阵.*/plhs[0]=mxCreateDoubleMatrix(mrows,ncols,mxREAL);
/*分配输入输出参数的指针.*/x=mxGetPr(prhs[0]);y=mxGetPr(plhs[0]);
/*调用timestwo子函数.*/timestwo(y,x);}第二步:编写与C语言程序功能相同的MEX文件第三步:将此MEX文件复制到当前工作目录进行编译和链接在MATLAB命令窗口中输入:mextimestwo.c
第四步:编译后就可以象调用M函数一样调用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 请求审批供应商的选择的函(8篇)范文
- 湖南省郴州市第十九中学2025-2026学年四下数学期中教学质量检测模拟试题含解析
- 关于2026年环保合规审查结果的确认函5篇
- 团结互助构成美好班级小学主题班会课件
- 现代企业管理制度设计与优化指导
- 湖南省邵阳市双清区春云学校2025年数学三下期末统考模拟试题含答案
- 湖南省衡阳市衡东县2025届四上数学期中联考试题含答案解析
- 超市补货陈列与库存控制流程指导书
- 湖南省衡阳市石鼓区2025届三年级数学下学期期中检测试题(含答案)
- 关于2026年订单处理系统升级的催办函4篇范文
- 2026年飞控系统测试题及答案
- 2026皮肤与性病学卫生高级职称(副高)试题试卷附答案
- 2026年广东省公需课《人工智能赋能高质量发展》试题及答案
- 2026重庆涪陵区新妙镇选聘本土人才4人笔试备考题库及答案详解
- 2026年体育市场营销师笔试模拟题
- 2024-2025学年广东省佛山市顺德区八年级(下)期末物理试卷
- 2026年江苏苏州园区初三化学一模调研试题含答案
- 公共组织财务管理(第三版)
- (正式版)T∕CSNAME 010-2021 修船行业绿色船舶修理企业规范条件
- 2026年马鞍山市含山县社区工作者招聘8名笔试参考题库及答案解析
- AI在集成电路中的应用
评论
0/150
提交评论