我是一位在MATLAB 2009b中编写代码的医学研究人员,由于自引用循环(此处不确定编程术语),运行速度非常缓慢,即第一次迭代的结果在第二次迭代等(我已经将它向量化为一个票价 - 你 - 我已经运行了Profiler。)将MATLAB代码转换为Fortran
我想将代码的慢速部分转换为mex函数。我在20世纪70年代早期学过Fortran,但自那以后就没有用过它。我需要转换的代码没有什么奇特之处,它只是一个很长的数值计算。
我的问题是:什么是最容易重新学习的Fortran足以达到此目的,以及哪种编译器在英特尔Mac上最适合此工作?例如,我发现将MATLAB中的语法与Fortran 90进行比较的信息,并且转换看起来不像对我来说太过艰巨。但是,我再次不是程序员。
我正在使用OS 10.6的MacBook Pro。
感谢任何帮助,谢谢。
多么具有讽刺意味。 Matlab被部分开发为“更好”的FORTRAN。 – Marc 2009-11-23 18:26:23
代码小到足以发布?在采取MEX之前,可能还有其他优化措施。例如。预分配和小心函数调用可能会让更新的Matlabs进行就地阵列修改,这是迭代计算的重大胜利。 – 2009-11-23 18:51:08
让我们希望这个激烈的讨论并没有吓倒他:) – Amro 2009-11-23 23:34:02