我目前正在为我的财务教授研究项目,我应该通过在MATLAB中编写代码来复制先前论文的结果。然而,我遇到了问题,我请前一篇论文的作者向我发送源代码。但是,他们使用的代码是在Fortran中,我想知道我是否可以将代码从Fortran转换为MATLAB,以及我应该使用哪些引用。谢谢!
答案 0 :(得分:2)
一个开始的地方是来自here的f2matlab。按照README文件开始。 f2matlab通常会让你获得95%的工作m文件,所以你必须在转换后调试m文件。
您的代码必须首先采用fortran90格式,您可以使用Alan Miller或Metcalf的转换器来帮助解决这个问题。
最后,最困难的事情之一是在尝试使用f2matlab之前从fortran代码中删除goto。您可以查看我的页面here,讨论使用remgoto进行goto删除/重构。
答案 1 :(得分:1)
最好的参考资料可能是关于Fortran和MATLAB的书籍(比方说,对于从每个人开始的人,Chapman的书籍 - 他写了关于Fortran和MATLAB的介绍性书籍)。我不熟悉任何专门处理从一个到另一个重写问题的作品,尽管从Fortran到MATLAB的重写比其他方式更容易。
它与原始代码中使用的Fortran版本的显着不同 - 使用Fortran90和更新版本,代码可以在简短和表达方面几乎像MATLAB一样。如果您有problem with the syntax这里有一个比较它的文档,那么将它作为参考就不错了。
但是为什么不尝试将原始代码编译(或更改,然后编译)为.dll并尝试将其与MATLAB连接。这样,你就可以在速度方面减少损失,并且可能会避免数章不稳定和测试问题的整个章节。