- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FORTRAN调用MATLAB
FORTRAN调用MATLAB************************************************** ** 一、Visual Fortran中使用Matlab引擎 ** ************************************************** source:/cgi-bin/ut/topic_show.cgi?id=16634h=1bpg=1age=-1#1.安装 软件版本: Compaq Visual Fortran(以下简称CVF)6.5 Matlab 6.1 安装路径: CVF: C:\Program Files\Microsoft Visual Studio Matlab: D:\matlab #2.配置mex 在matlab下运行命令mex –setup,然后按提示选择CVF编译器 #3.配置编译环境 有两种选择 (1)Matlab下编译 (假设matlab安装目录为 %matlab%) 1.打开%matlab%\bin\win32\mexopts\df60engmatopts.bat 将13行中的 set DF_ROOT=%DF_ROOT % 改为set DF_ROOT =C:\Program Files\Microsoft Visual Studio (CVF安装目录) 2.将matlab的工作目录改为你的fortran源代码存放的目录 3.在matlab下运行 mex –f df60engmatopts.bat exsample.for (假设源文件为exsample.for 其中有关于matlab引擎的操作) (2)CVF下编译 1.新建一个项目 2.在tools-directory 里设置 include 和 lib目录 记住要包括以下目录 include -C:\Program Files\Microsoft Visual Studio\DF98\Include include-C:\Program Files\Microsoft Visual Studio\DF98\IMSL\Include include-D:\MATLAB\EXTERN\INCLUDE lib-D:\MATLAB\EXTERN\LIB\WIN32 lib-D:\MATLAB\EXTERN\LIB\WIN32\DIGITAL\DF60 lib-C:\Program Files\Microsoft Visual Studio\DF98\IMSL\Lib lib-C:\Program Files\Microsoft Visual Studio\DF98\Lib 3. 在project-setting-link-Object/library modules里添加libmx.lib libmat. lib libeng.lib 1。上面提到的无法定位程序输入点 的错误。 因为我是用的matlab自带的一个例程,出现这个错误肯定是自己系统的问题。不知道别人有没有遇到过。在这里发问,没结果呀。我就用“无法定位程序输入点”在“百度”上搜,查到一个mm在玩某个游戏的时候也遇到这样错误,解决的办法就是把提到的那个dll文件名前加_,如libeng.dll改为_libeng.dll,照这样按照出错提示把c:\winnt\system32中的libeng.dll、libmx.dll、libut.dll都改了一遍,再编译运行,搞定。 2。我要做的其实是想借Matlab中的用符号运算解一个二元三次方程组来求八节点等参单元中给定点整体坐标对应的局部坐标。主要就是根据matlab中的fengdemo.f来加入自己的东西,其实也很简单,一些小的地方要注意。开始的时候老是编译不通过,一度都要放弃了,因为用到Symbolic Math Toolbox中的solve,以为不支持。偶尔看fengdemo.f的源程序,在用到engEvalString时输入到matlab中的单引号()都是用2个单引号()来表示的,错就在这里,统统改掉,就可以了。 Matlab中的计算结果: 0.99433792247939 0.92631964961160 Fortran中调用结果: 0.994337897515527 0.926319366356284 差一点,双精度的 3。我的源程序 ! XSHHN 2004.6.22 program main double precision ElementCod(16),InquireCod(2),LocalCod(2) DATA ElementCod/-6.75000E+0
您可能关注的文档
- 2004英语.doc
- 2004年度经典网站欣赏经典之中的经典.doc
- 2005年全国统一考试试卷.doc
- 2010下半年软件设计师上午真题.doc
- 2010年世界大学排名前100名.doc
- 2010年武汉市高考英语试卷及答案.doc
- 2010护士资格考试全真模拟试题.doc
- 2011.06英语四级.doc
- 2011.06英语四级听力原题及详解.doc
- 2011年上海市职工4月1日起社保基数等均有调整.doc
- 2-红河州建筑施工安全生产标准化工地复核评分表(2022年修改版).docx
- 6.锡通项目2018年下半年工作会汇报材料(2018.7.9).docx
- 2018道路工程知识点汇总(新版).docx
- 附件3:月度生产例会安全汇报资料-站台门项目部.docx
- 附件2:广东建工集团2018年度科技成果汇总表.DOC
- 马武停车区、三汇停车区停车位管理系统,0#台账缺量.doc
- 攀成钢委办发〔2015〕19号(党风廉政建设责任考核与追究办法).doc
- 1-红河州建筑工程质量管理标准化复核评分表(2022年修改版).docx
- 中交第三公路工程局第四工程分公司项目经济合同结算管理办法(修订).doc
- 厂站安全操作规程汇编.doc
文档评论(0)