fortran与matlab如何连接

合集下载

MATLAB与FORTRAN混合编程接口程序技术的研究

MATLAB与FORTRAN混合编程接口程序技术的研究
p og a m i g w ih t W O c m p lr S que ,t ut nayz spr g a n e a e tc ni t t tVO c r rm n t he t o ie s e nt he a hora l e o r m i t r c e h que wih boh  ̄ om pl r,t e ntod e w f c ies h n i r uc sho t r aea d h w O us h EX l.a atgv sadeald e m pl. ^ O c e t n o t e t e M i f e tls ie ti xa e e
如 果 你 的 F R R N 编译 器 如 F R R N 0等 支 持 %vl 构 。 O TA OTA 9 a结 即 用 户 可 以在 程 序 中 讲 一 个 变 量 声 明为 指 针 类 型 , 时 对 数 据 的 访 这
包 等 。 是 现 在 国际 上 流 行 的许 多 大 型软 件 都 是基 于 F R R N、 但 O TA C、+ 这 些 语 言 开 发 的 ,因此 在这 些 领 域 仍 然 有 着 不 可 替 代 的 地 C+ 位。 MA L B( a i L brtr) 言 是 一 种 以 矩 阵 ( tx 和 阵 T A M tx aoa y 语 r o mai) r 列 (r y 为 基 本 编 程 单 元 的 , 有 完 整 的控 制 语 句 、 据 结 构 、 aa) r 拥 数 函 数 编 写 与 调 用 格 式 等 具 有 面 向 对 象 程 序 设计 特 征 的 高 级 程 序 设 计 语 言 。读 者 不但 可 以 利 用 它 方 便 快 捷 地 完 成 小 规 模 的 算 法 验
交 换 的 m A ry结 构 体 的 内 存 地 址 作 为 一 个 整 型 数 值 传 递 给 xr a

FORTRAN程序调用MATLAB引擎实现计算可视化

FORTRAN程序调用MATLAB引擎实现计算可视化

收稿日期:2000-05-29作者简介:聂万胜(1969-),男,内蒙古人,博士,主要研究方向:航空推进理论的科学计算和可视化、飞行器测试发射的科学计算和可视化.文章编号:1001-9081(2000)11-0060-02FORTRAN 程序调用MATLAB 引擎实现计算可视化聂万胜,庄逢辰,黄玲,邹勤(装备指挥技术学院,北京怀柔101416)摘要:探索了FORTRAN 程序调用MATLAB 函数的基本原理,用实例介绍了调用MATLAB 引擎函数,实现FORTRAN 程序计算结果的可视化过程。

并给出如何编译带有MATLAB 引擎函数的FORTRAN 程序的具体技术。

关键词:FORTRAN ;MATLAB ;引擎;可视化中图分类号:TP311.52文献标识码:A1概述FORTRAN 和C 等高级语言使人们无需直接对计算机硬件资源进行操作。

而被称为第四代计算机语言的MATLAB ,则利用其丰富的函数资源,代替了C 语言和FORTRAN 的冗长代码,给用户带来了最直观、最简洁的程序开发环境。

在欧美很多高校,MATLAB 已经成为自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;在设计研究单位和工业部门,MATLAB 被广泛地用于研究和解决各种具体问题。

其最主要的特点有:语言简洁,使用方便灵活,程序书写形式自由,库函数极其丰富,图形功能强大。

由于不管是C 语言还是FORTRAN 语言,其图形和可视化功能的实现都需要较为专业的编程水平,所以本文旨在充分发掘MATLAB 的功能,利用MATLAB 所提供的接口函数实现FORTRAN 程序的计算结果可视化,充分综合了FORTRAN 程序的执行速度快而MATLAB 可视化处理简单方便,开发周期短的优点。

2FORTRAN 调用MA TLAB 函数的原理由于FORTRAN 程序和MA TLAB 的运算单位不同,前者以数为运算单位,后者以矩阵为基本的运算单位,所以数据类型不能直接匹配。

第15章MATLAB与其他编程语言结合

第15章MATLAB与其他编程语言结合

第15章MATLAB与其他编程语言结合第1 5章M A T L A B与其他编程语言结合M AT L A B可以和其他编程语言一起使用,可以调用 F O RT R A N或C程序。

反过来F O R T R A N或C也可以调用M A T L A B程序。

这样,快速的编译程序就可以利用M A T L A B中强大的矩阵或图形命令,通过编写部分的C或F O R T R A N程序,并进行编译,就可以避免M A L TA B 程序的瓶颈现象。

M A T L A B还可以结合使用其他的应用程序,如Microsoft Word for Wi n d o w s。

这将在本章的最后一节讨论,这主要取决于计算机的系统和安装的应用程序。

15.1 介绍M A T L A B和F O R T R A N或CM A T L A B可以被F O R T R A N或C语言程序调用,它也可以调用F O R T R A N或C语言程序。

如果M A T L A B程序运行速度很慢,后者对此很有用。

因为M A T L A B是一个解释性语言,所以当运行程序时就是解释它的命令。

这样有时会导致程序的运行速度很慢,如f o r- l o o p s循环。

在F O RTRAN 77和C中可以使用M AT L A B库,也可以用F O RTRAN 90或C++对它们进行链接。

除非特别需要,一般不推荐编写F O R T R A N或C程序。

M A T L A B的优点在于可以用高级的形式描述出操作,而程序员不必担心循环的次数和一些其他细节问题。

被M A T L A B调用的程序必须在编译后转换成M E X文件,这样才能被M A T L A B调用。

在编译时它们和M文件一样使用。

在2 .8节中讲到了由M A T L A B创建的二进制文件。

它们是以M A T文件形式被调用的,在C 或F O R T R A N语言的库中有用来读和写二进制文件的程序。

MATLAB与FORTRAN共享数据的实现

MATLAB与FORTRAN共享数据的实现

MATLAB与FORTRAN共享数据的实现
徐屾;于波
【期刊名称】《现代计算机(专业版)》
【年(卷),期】2001(000)006
【摘要】MATLAB具有强大的矩阵计算和绘图功能,而FORTRAN在大规模的数值计算上仍占有一定的优势.使用MATLAB强大的矩阵计算与绘图功能,或借用FORTRAN大规模的数值计算能力,在应用程序的开发或数值计算、分析中,我们就可以节省大量的时间与精力.
【总页数】3页(P78-80)
【作者】徐屾;于波
【作者单位】武汉大学动力机械工程学院,武汉,430072;武汉大学动力机械工程学院,武汉,430072
【正文语种】中文
【中图分类】TP3
【相关文献】
1.MatLab与Fortran混合编程实现结构优化和可靠性分析 [J], 赵秀丽;易平
2.Fortran与Matlab混合编程实现溴化锂水溶液的物性计算可视化 [J], 王书中;由世俊;孙贺江;李秋生
3.VC++调用Fortran及MATLAB程序混合编程实现 [J], 马清华;王明海
4.Matlab与Fortran混合编程之DLL实现方法 [J], 潘克家;汤井田;郑洲顺
paq Visual Fortran与Matlab混合编程实现小波域地震信号多尺度分析[J], 徐天吉;程冰洁
因版权原因,仅展示原文概要,查看原文内容请购买。

MATLAB与FORTRAN混合编程接口程序技术的研究

MATLAB与FORTRAN混合编程接口程序技术的研究

" 接口程序面临的问题以及解决办法
由于 !"$#A& 的数据 存 储 格 式 与 *A$+A7 的 不 同 ! 因 此 需 要利用 *A$+A7 中的 A89 接口程序 ! 把 *A$+A7 中的 矩 阵 类 型 转 换 为 !"#$#A& 程 序 可 以 使 用 的 双 精 度 变 量 ! 然 后 把 !"#! $#A& 的运行结果转换为 *A$+A7 可以使用的矩阵 类 型 输 出 ! 这 里 *A$+A7 使用指针这个功能使二种数据格式进行转换的 ! 因为 *A$+A7 A89 是 以 一 种 特 殊 的 数 据 类 型 51A//-4 结 构 体 来 工 作 的 ! 在 !"#$#A& 中 没 有 这 样 的 一 种 数 据 类 型 ! 所 以 *A$+A7 使 用 了 指 针 来 与 !"#$#A& 程 序 交 换 数 据 $ 首 先 !*A$+A7 将 需 要

3& Ti qrGE6 nM2EqOrlM2EqOmhM2EqO Ti C&6@26’, Gi C&6@26’, 0,@’?6 B63 对 =.@?2l=’-@2/-h;V 进行编译后 ! 可以得到 =.@?2l=’-@2/-h;3-- 动 态连接库程序 ! 在 bU)^Ud 命令窗口中 ! 输入以下命令 % .r!G Tt[ Q# gr!Q [tT G# Cr=.@?2l=’-@2/-h!.Eg#
PD2/3D.0=? 5?1@D=<.03= B:;Q/N:/QCN=;QCN=/QCR ( 入口子程序四个参数说明 ( ( 其 中 :/QC %S &!:;QC %S & 分 别 代 表 了 输 入 " 输 出 参 数 地 址 的

在MATLAB中调用VISUAL FORTRAN程序的实现

在MATLAB中调用VISUAL FORTRAN程序的实现

在MATLAB中调用VISUAL FORTRAN程序的实现
陈元莉
【期刊名称】《西华师范大学学报(自然科学版)》
【年(卷),期】2002(023)001
【摘要】在使用MATLAB语言的过程中,有些用户希望在MATLAB中直接运用一些过去编写的经典而高效的FORTRAN程序,而MATLAB本身并未提供与FORTRAN的接口,这就需要用户编写有关的接口程序.本文阐述了在MATLAB中如何调用VISUAL FORTRAN程序,通过MATLAB对FORTRAN MEX文件的调用实例,叙述了在MATLAB中调用VISUAL FORTRAN程序的原理和实现过程.【总页数】5页(P61-65)
【作者】陈元莉
【作者单位】四川师范学院物理系,四川,南充,637002
【正文语种】中文
【中图分类】TP311.54
【相关文献】
1.VB、VC++、Visual FORTRAN程序对MATLAB的调用 [J], 周明莹
2.VC++调用Fortran及MATLAB程序混合编程实现 [J], 马清华;王明海
3.FORTRAN程序调用MATLAB引擎实现计算可视化 [J], 聂万胜;庄逢辰;黄玲;邹勤
4.DLL在Visual Basic程序调用MATLAB库函数中的应用 [J], 李小文;屠宇;梁慧

5.在Visual Basic程序中调用Fortran动态链接库的方法 [J], 鲜飞军;杨合
因版权原因,仅展示原文概要,查看原文内容请购买。

Matlab 调用Fortran Dll数组传递范例

Matlab 调用Fortran Dll数组传递范例

Matlab 调用Fortran Dll数组传递范例
1、Fortran代码
test.f90
SUBROUTINE add(outdata,indata)
!DEC$ ATTRIBUTES C,DLLEXPORT :: add
!伪注释说明test.dll文件中包含一个名为add的子例行程序,C即为按C 调用约定输出
IMPLICIT NONE
REAL outdata(2),indata(3)
outdata(1)=indata(1)-indata(3)
outdata(2)=indata(2)+indata(3)
ENDSUBROUTINE
2、.h代码
test.h
void add(float*, float*);
//该代码名须与子例行程序名相同,该头文件可在任何文件编辑器中编写,编写完后保存头文件,本例中头文件名为:test_c.h。

其实,每一个dll文件可包含多个子例行程序,那么在书写头文件代码时,就需要对应书写多个void代码。

3、Matlab代码
test.m
clc; clear all;
loadlibrary('test.dll','test.h');
x=[0,0];indata=[1,2,3];
outdata=calllib('test', 'add', x,indata);
%调用test.dll文件里的add子例行程序
%x虽然对应Fortran里的输出(指针),但它并不返回值
%outdata才是返回的值,输出在输入前面(如果仅输出一个数组的话)unloadlibrary test。

fortran与matlab混合编程实现溴化锂水溶液的物性计算可视化

fortran与matlab混合编程实现溴化锂水溶液的物性计算可视化

fortran与matlab混合编程实现溴化锂水溶液的物性计算可视化以溴化锂水溶液为工质的吸收式制冷既可利用蒸气,热水,燃气、燃油等能源,还可利用工业余热、废热、太阳能、地热能等低品味能源作为动力,同时工质对大气臭氧层无破坏作用,这些节能、环保方面独特的优势使得溴化锂吸收式制冷具有了广阔的市场和良好的发展前景。

随着溴化锂吸收式制冷机组在技术与应用上的不断发展,人们对机组的优化设计、变工况条件下最佳运行参数的动态调整和自动控制等方面提出了更高的要求,也越来越多地要求利用计算机进行设计和计算。

传统的这类计算都要借助于溴化锂水溶液的物性数据图表,从图表上查出或手算出有关物性参数和热力过程特性数据。

但是这种方法繁琐,费时,误差较大,已经远远不能满足现在的应用需求,为此,能不能找到一种可以动态绘图,自动捕捉状态点,鼠标实时显示状态点参数,并根据已知的的状态参数求其他未知的参数,根据用户需要直接绘制溴化锂吸收式制冷循环流程图的方法,已成了急需解决的问题。

基于此,本文尝试从满足以上几种功能出发,利用FORTRAN与Matlab混合编程,充分结合Fortran运算速度快,Matlab矩阵计算及图形处理功能强的优点,实现了溴化锂水溶液物性计算的可视化。

1 溴化锂水溶液物性计算可视化的基本思想使用过Fortran、C和C++等传统的高级语言进行编程的读者可能都知道,在对矩阵,运算尤其是复杂的绘图操作时,程序设计将是一件非常困难,又不能很好的实现预想效果的任务,Matlab(又称Matrix Labrotary)就是Mathworks 公司推出的最初用于解决该问题的以矩阵(Matrix)和阵列(Array)为基本编程单元的,拥有完整的控制语句、数据结构、函数编写与调用格式和输入输出功能的具有面向对象程序设计特征的高级程序语言,其强大的科学计算与可视化功能,简单易用的开放式可扩展环境以及30 多个面向不同领域而扩展的工具箱(TOOLBOX)支持,包括了通信系统、信号处理、图象处理、小波分析、鲁棒控制、系统辨识、非线性控制、模糊控制、神经网络、优化理论、样条、商用统计分析等大量现代技术学科的内容,使得MATLAB 在许多科学领域中成为计算机辅助设计与分析、算法研究和应用开发的基本工具和首选平台。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档