热门标签 | 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结构体 ) , 后者是基于数 ,两者的数



推荐阅读
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文将详细介绍如何在Android Studio中导入和编译OSChina Android 2.4版本的源码。包括所需软件、下载地址以及一些注意事项。 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 无论是在迁移到云服务还是更换云服务商的过程中,数据迁移都是一个至关重要的环节。本文将探讨数据迁移中可能遇到的问题及解决方案,包括路径问题、速度问题和数据完整性等。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
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社区 版权所有