热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

fortranmatlab混合,Matlab与Fortran的混合编程及其应用

第25卷第1期桂林工学院学报Vol.25No.12005年1月JOURNALOFGUILINUNIVERSIT

第 25卷  第 1期               桂 林 工 学 院 学 报             Vol. 25 No. 1 2 0 0 5 年 1 月          JOURNAL OF GU IL IN UN IVERSITY OF TECHNOLOGY        Jan12005文章编号 : 1006 - 544X (2005) 01 - 0076 - 05 Matlab与 Fo rtran的混合编程及其应用 刘 羽1, 2 (11中国地质大学 地球物理与空间信息学院 , 武汉  430074; 21桂林工学院 电子与计算机系 , 广西 桂林  541004) 摘  要: 介绍和分析了 Matlab与 Fortran混合编程的两种方式 , 即利用 Mex文件和利用 Matlab 引擎; 给出了其具体实现方法 , 并讨论了各自的优缺点和适用情况; 给出了一个物探数据可视化的应用实例. 分析和实验结果表明: 通过 Matlab与 Fortran混合编程 , 不仅可以利用 Mat2lab 强大的图形功能和丰富的工程计算函数 , 还能发挥 Fortran数值运算高效的特点和利用其原 有的大量程序资源 , 从而使编程更为灵活、高效. 如 Fortran程序中有大量交互输入 , 宜采用Matlab引擎混合编程方式; 如 Fortran中要调用的 Matlab函数较多 , 则应考虑采用 Mex文件混合编程. 关键词: Matlab; Fortran; 混合编程; 接口 中图分类号: TP311            文献标识码: A Matlab提供了强大的矩阵运算和图形处理功能以及大量工程计算领域中常用的数值处理函数和高效工具箱 , 不仅编程效率很高 , 适合数据处理及结果的可视化 , 而且在理论和算法上成熟可靠. 但由于是一种解释型语言 , Matlab也有不足之处 , 如执行次数较多的循环特别是多层嵌套循环时速度较慢 , 不太适合做大规模的数值计算和分析 [1 ]. Fortran语言是传统的数值处理语言 , 处理速度高 , 编程简便 , 有很多源代码资源可供使用 , 但绘图功能不强 , 在可视化方面需要编制复杂的代码. 因此 , 用两种语言混合编程 , 可以充分利用 Matlab中丰富的函数及 Fortran语言原有的算法程序 , 弥补彼此的不足 , 这已成为当前科学问题和工程问题的一种良好解决方案. 1 Matlab与 Fortran混合编程及数据传递方式 111 混合编程方式 Matlab提供了多种途径及相应的 API (应用程序接口 ) 函数实现与其它语言的混合编程 , 但就 Fortran来说 , 常用的是利用 Mex文件和利用 Mat2lab引擎两种方式 : 前者是以 Matlab为主调程序 , 调用 Fortran代码编译后的 Mex文件 , 此种方式必须在 Matlab环境下运行 ; 后者则是用 Fortran设计应用程序框架 , 以其编译的程序作为前端客户机 , 通过调用 Matlab引擎 , 实现后台与 Matlab服务器的连接和动态通信. 此种方式下 , 程序可在 W in2dows下任何地方运行 , 但仍需要 Matlab在后台运 行. 因此无论采用哪种方式 , 运行时都必须具有 Matlab的支持. 112 数据传递方式 多种语言的混合编程中 ,最重要的是要解决它们之间的数据传递问题. Matlab和 Fortran语言的运算单位不同 ,前者是基于矩阵 (mxArray结构体 ) , 后者是基于数 ,两者的数



推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
author-avatar
曹月洪_867
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有