I un ricercatore medico con codice scritto in MATLAB 2009b che funziona molto lentamente a causa di un loop autoreferenziale (non sicuro del gergo di programmazione qui), cioè, i risultati della prima iterazione vengono utilizzati durante la seconda iterazione, ecc. (l'ho vettorializzata a un prezzo-bene. Ho eseguito il Profiler.)conversione del codice MATLAB in Fortran
Mi piacerebbe convertire le parti lente del codice in una funzione mex. Ho imparato Fortran nei primi anni '70, ma da allora non l'ho più usato. Il codice che devo convertire non fa niente di fantasia, è solo un lungo calcolo numerico.
La mia domanda è: quale sarebbe la versione più facile da imparare di Fortran adeguata per questo scopo e quale compilatore funziona meglio su Intel Mac per questo? Ho trovato informazioni che confrontano la sintassi in MATLAB con Fortran 90, ad esempio, e la conversione non sembra che sarebbe troppo scoraggiante per me. Comunque, di nuovo, non sono un programmatore.
Sto usando un MacBook Pro con OS 10.6.
Apprezzare qualsiasi aiuto, grazie.
Che ironia. Matlab è stato sviluppato in parte come FORTRAN "migliore". – Marc
Il codice è abbastanza piccolo da essere pubblicato? Potrebbero esserci altre ottimizzazioni prima di ricorrere a MEX. Per esempio. la preallocazione e l'attenzione con le chiamate di funzione potrebbero consentire ai nuovi Matlabs di apportare modifiche sul posto, una grande vittoria per i calcoli iterativi. –
lascia sperare che questa accesa discussione non lo spaventi :) – Amro