将MATLAB代码转换为Fortran

Kev*_*vin 5 macos matlab fortran translation

我是一名医学研究员,使用MATLAB 2009b编写的代码由于自引用循环(这里不确定编程术语)而运行得非常慢,即在第二次迭代期间使用第一次迭代的结果等等.(I已经将它矢量化为一个票价 - 我已经运行了Profiler.)

我想将代码的慢速部分转换为mex函数.我在20世纪70年代早期学过Fortran但从那以后就没用过它.我需要转换的代码没有做任何花哨的事情,它只是一个很长的数值计算.

我的问题是:对于这个目的而言,最容易重新学习的Fortran版本是什么,以及什么编译器在英特尔Mac上最适合这个?例如,我找到了将MATLAB中的语法与Fortran 90进行比较的信息,转换对我来说似乎不太令人生畏.但是,我再也不是程序员了.

我正在使用OS 10.6的MacBook Pro.

感谢任何帮助,谢谢.

rob*_*nce 8

我建议使用现代Fortran,至少90/95,因为语法更宽容,几乎所有编译器现在都支持它.

在Mac上,我会从这里推荐gfortran .它不是最新版本,但它与Apple构建工具(您需要从Mac OS DVD安装Xcode)很好地集成,并且运行良好.在数字python社区中,它依赖于很多Fortran扩展,强烈建议使用此版本.

我实际上并没有在mac上使用fortran mex - 但我认为如果你遵循mex文档它应该是相当简单的 - 正如你所说的从Matlab到Fortran的代码翻译不应该太糟糕(如果你能避免它会更好调用Matlab函数,但fortran有明智的切片和数组访问权限).