数据相关论文范文检索,与Matlab与Fortran语言混合编程的接口技术相关毕业论文格式范文

时间:2020-07-05 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

本论文是一篇数据相关毕业论文格式范文,关于Matlab与Fortran语言混合编程的接口技术相关本科毕业论文范文。免费优秀的关于数据及程序及参考文献方面论文范文资料,适合数据论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

摘 要:阐述了在matlab环境下,调用Fortran语言的原理,并通过一实例说明如何实现Matlab,Fortran两种语言的混合编程.

关 键 词:Fortran;Matlab;接口技术;混合编程

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31643-01

ProgramInterfaceTechniqueforMatlabandFortranCompiling

PENGYu-shan1,RENXiang-he2

(1.ShandongAgriculturalUniversity,Tai'an271018,China,2.ShanghaiInstituteofOpticsandFineMechanics,ChineseAcademyofSciences,Shanghai201800,China)

Abstract:InthispaperthetheoryofusingFortranprogrammeunderMatlabenvironmentisdiscussed.Fromanexample,theinterfacetechniquebetweenthetwoprogrammesisshown.

Keywords:Fortran,Matlab,interfacetechnique,mixingprogramme

MATLAB是当今流行的科学计算软件,专门以矩阵的形式处理数据,它把数值计算和可视化环境集成到一起,许多用户在使用时希望能够直接调用过去的FORTRAN经典计算程序.虽然MATLAB没有现成的接口程序,但其提供的标准API工具,使用户能够根据需要来编写接口程序,完成MATLAB与其它外部程序的通讯.下面本文就以具体实例来说明如何编写完整的MATLAB与FORTRAN的接口程序.

1MATLAB环境的配置

MEX文件是MATLAB语言的外部程序调用接口,它可以调用外部的FORTRAN程序.要调用外部的FORTRAN程序,必须先用MEX命令来搭建MATLAB调用FORTRAN的平台,具体步骤为:在MATLAB命令提示符下键入命令

Matlab与Fortran语言混合编程的接口技术参考属性评定
有关论文范文主题研究: 关于数据的论文范文集 大学生适用: 本科论文、学年论文
相关参考文献下载数量: 27 写作解决问题: 如何怎么撰写
毕业论文开题报告: 论文任务书、论文选题 职称论文适用: 杂志投稿、高级职称
所属大学生专业类别: 如何怎么撰写 论文题目推荐度: 经典题目

>>mex-setup

系统提示

Pleasechooseyourpilerforbuildingexternalinterface(MEX)files:

Wouldyoulikemextolocateinstalledpilers[y]/n

然后键入y,回车,系统又会提示:

Selectapiler:

[1]CompaqVisualFortranversion6.6ind:\program

[2]LccCversion2.4inD:\MATLAB7\sys\lcc

[0]None

Compiler:

在Compiler:后面输入1,回车,再按系统提示就会完成平台的搭建.如图1所示.系统配置完成后,就可以使用命令mexmyfunction调用FORTRAN程序.

图1

2FORTRANMEX文件的编写

FORTRAN语言的MEX文件有两部分组成:接口程序和计算程序.

2.1接口程序

接口程序可以完成两项任务:第一是从输入的参数中获得计算所需要的数据;第二是把计算的结果返回MATLAB.这样接口程序就完成了MATLAB与FORTRAN语言之间通讯任务.

subroutinemexFunction(nlhs,plhs,nrhs,prhs)

implicitnone

integerplhs(*),prhs(*)

integermxGetpr,mxGreatFull

integerx_pr,y_pr,y_pr,w_pr,nlhs,plhs,m,n,size

real(kind等于8)x,y,z,w

C参数nlhs,nrhs分别代表输出和输入数据的个数;plhs,prhs,分别代表输出和

C输入数据的指针,(*)代表参数长度不确定要根据实际情况而定.

if(nrhs/等于2)thenC判断输入数据个数本文假设有个输入数据

callmexErrMsgTxt(‘Oneinputrequired’)

elseif(nlhs/等于2)thenC判断输出数据个数,本文假设有两个输出数据

callmexErrMsgTxt(‘Oneoutputrequired’)

endif

C检查数据的类型

if(mxIsNumeric(prhs(1)).ne.1)then

Cprhs(1)为第一个数据的指针

callmexErrMsgTxt('Inputmustbeanumber1')


数据学术论文的写作
播放:28205次 评论:5565人

elseif(mxIsNumeric(prhs(2)).ne.1)then

Cprhs(2)为第二个数据的指针

callmexErrMsgTxt('Inputmustbeanumber1')

endif

C获取输入数据的大小

m等于mxGetM(prhs(2))

n等于mxGetN(prhs(2))

C产生输出数组

plhs(1)等于mxCreateFull(m,n,0)C输出数据的指针

plhs(2)等于mxCreateFull(m,n,0)

C读取第一个输入数据地址并放在指针x_pr中

x_pr等于mxGetPr(prhs(1))

C读取第二个输入数据地址并放在指针y_pr中

y_pr等于mxGetPr(prhs(2))

C读取第一个输出数据地址并放在指针z_pr中

z_pr等于mxGetPr(plhs(1))

C读取第二个输出数据地址并放在指针w_pr中

w_pr等于mxGetPr(plhs(2))

C将计算结果转换成指针返回到MATLAB

C从第一个输入数据地址读取数值并返回x中

callmxCopyPtrToReal8(x_pr,x,size)

C从第二个输入数据地址读取数值并返回y中

callmxCopyPtrToReal8(y_pr,y,size)

C调用FORTRAN计算程序

calltest(x,y,z,w)

C将计算结果返回MATLAB

C从第一个计算数据z输出到指针z_pr

callmxCopyReal8ToPtr(z,z_pr,size)

C从第二个计算数据w输出到指针w_pr

callmxCopyReal8ToPtr(w,w_pr,size)

return

end

2.2计算程序

计算程序主要完成你所需要的计算任务,它是完全是用FORTRAN写的,而且在这一部分FORTRAN还可以调用自己的子程序.这一部分要和接口程序并存于一个文件里.

subroutinetest(x,y,z

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
后台-系统-系统设置-扩展变量-(内容页告位3-手机版)