1

我目前正在为我的金融学教授做一个研究项目,我应该通过在 MATLAB 中编写代码来复制以前论文的结果。然而,我遇到了问题,我要求上一篇论文的作者将源代码发给我。然而,他们使用的代码是 Fortran,我想知道是否可以将代码从 Fortran 转换为 MATLAB,以及我应该使用哪些参考。谢谢!

4

2 回答 2

2

从这里开始的一个地方是 f2matlab 。按照 README 文件开始。f2matlab 通常会为您提供 95% 的工作 m 文件,因此您必须在转换后调试 m 文件。

您的代码首先需要采用 fortran90 格式,您可以使用 Alan Miller 或 Metcalf 的转换器来帮助解决这个问题。

最后,最困难的事情之一是在尝试 f2matlab 之前从 fortran 代码中删除 goto。您可以在此处查看我的页面,讨论使用 remgoto 进行 goto 删除/重构。

于 2012-08-25T10:59:13.887 回答
1

最好的参考资料可能是关于 Fortran 和 MATLAB 的书籍(比如说,对于从两者开始的人来说,Chapman 的书籍 - 他写了一本关于 Fortran 和 MATLAB 的介绍性书籍)。我不熟悉任何专门处理从一个重写到另一个的问题的作品,尽管从 Fortran 重写到 MATLAB 肯定比反过来更容易。

它也随着原始代码中使用的 Fortran 版本的变化而显着变化 - 使用 Fortran90 和更新的版本,就简短性和表现力而言,代码几乎可以像 MATLAB 一样。如果您对此处的语法有疑问,请参阅一份对其进行比较的文档,因此将其作为参考也不错。

但是为什么不尝试将原始代码编译(或稍作改动,然后编译)为 .dll 并尝试将其与 MATLAB 连接。这样,您肯定会在速度方面损失更少,并且可能会避免一整章的数值不稳定和测试问题。

于 2012-08-24T23:37:12.837 回答