我目前正在为我的金融学教授做一个研究项目,我应该通过用MATLAB编写代码来复制前一篇论文的结果。然而,我遇到了问题,我要求前一篇论文的作者将源代码发送给我。然而,他们使用的代码是Fortran,我想知道是否可以将代码从Fortran转换为MATLAB,以及我应该使用哪些引用。谢谢!
发布于 2012-08-25 18:59:14
可以从here的f2matlab开始。按照自述文件开始。f2matlab通常可以让您达到工作m文件的95%,因此您必须在转换后调试m文件。
您的代码首先需要是fortran90格式,您可以使用Alan Miller或Metcalf的转换器来帮助实现这一点。
最后,最困难的事情之一是在尝试f2matlab之前从fortran代码中删除goto。你可以看看我的页面here,讨论用remgoto移除/重构goto。
发布于 2012-08-25 07:37:13
最好的参考资料可能是关于Fortran和MATLAB的书籍(对于从两者开始的人来说,是Chapman写的书-他写了一本关于Fortran和MATLAB的介绍性书籍)。我不熟悉任何专门处理从一种重写到另一种重写问题的作品,尽管从Fortran重写到MATLAB确实比从Fortran重写到MATLAB更容易。
随着Fortran版本的不同,在原始代码中使用的方式也有很大的不同-使用Fortran90和更新的版本,代码可以在简短和表现力方面使代码几乎像MATLAB一样。如果你有problem with the syntax,这里有一个文档对它进行了比较,所以把它作为参考是不错的。
但是为什么不试着把原始代码编译成.dll (或者稍微修改一下,然后编译),然后把它和MATLAB连接起来呢?这样,您肯定会在速度方面损失较少,并且可能会避免一整章的数值不稳定性和测试问题。
https://stackoverflow.com/questions/12116916
复制相似问题