首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Fortran与Matlab之间的通信

Fortran与Matlab之间的通信
EN

Stack Overflow用户
提问于 2014-10-28 16:19:14
回答 1查看 526关注 0票数 3

在让不同的编程语言相互通信方面,我还是个新手,希望能得到一些帮助。基本上我有一个Fortran代码和一个Matlab代码。这两个代码首先被初始化,然后必须按顺序运行。每个代码都需要来自另一个代码的输入。当这个过程重复得足够频繁时,就会达到一些收敛标准,迭代就会终止。让事情变得更复杂的是,Fortran代码不仅需要来自Matlab的输入,还需要来自它自己先前迭代的输入。这同样适用于Matlab。因此,据我所知,最好在迭代过程中保持两个程序都打开,因为我有很多变量,因此不能只将它们写在文本文件中,将它们交给另一个程序,并为下一次迭代保留它们。

所以从本质上讲,我正在尝试这样做:

初始化变量集合A、B、C和D

Fortran:

代码语言:javascript
复制
Input: A and B
Calculations …
Output: A (variables have now new values) and D

Matlab:

代码语言:javascript
复制
Input: C and D
Calculations …
Output: C (variables have now new values) and B

重复Fortran和Matlab,直到达到收敛标准。

所以我的问题是:如何使Matlab和Fortran相互通信,并将变量传递给彼此?每个代码如何触发另一个代码,然后等待其他代码先完成其计算,然后再继续?

EN

回答 1

Stack Overflow用户

发布于 2014-10-28 21:04:40

你最喜欢的搜索引擎的关键字是"fortran mex“。MATLAB有一个很好的文档/教程,可以上手here

MEX文件允许您从MATLAB中调用Fortran子例程

但我相信只有当你从Matlab中调用Fortran子例程时,它才能起作用。你不能轻易地从Fortran代码中调用Matlab .m函数。所以你的“主”程序必须是Matlab .m脚本,它调用MEX文件(实际上是一个动态库)中定义的Fortran子例程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26603606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档