MATLAB performance HELP

Fermé
q.bruneau Messages postés 12 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 3 juillet 2009 - 2 juil. 2009 à 12:21
 q.bruneau - 6 juil. 2009 à 08:00
Bonjour,

je développe un programme sous matlab, qui effectue un certain (énorme) nombre de calculs.

Mon problème est le temps d'exécution du programme. D'après le profiler, la partie du code qui prend le plus de temps (le temps d'exécution du reste du code est négligeable) est celle-ci :


for i=2:imax
I_indice_pos = Premier_I + (i-1)*pas_I;
I_plot_pos(i) = I_indice_pos;
for j=2:jmax
J_indice_pos = Premier_J + (j-1)*pas_J;
J_plot_pos(j) = J_indice_pos;
for k=1:n_time
if (J_em_mes(k) >J_indice_pos - pas_I / 2)... %(profiler: time: 12.56s calls: 218929497)
&&(J_em_mes(k) <=J_indice_pos + pas_J / 2)...
&&(I_em_est(k) > I_indice_pos - pas_I / 2)...
&&(I_em_est(k) <= I_indice_pos + pas_I / 2)
Mat_occurence_pos(i,j) = Mat_occurence_pos(i,j) + 0.1;
end
end
end
end


Auriez-vous une idée qui me permettrait d'améliorer cette partie?

Sachant que dans le cas idéal (pas le plus fin), Imax = 200 et Jmax = 12000 et n_time = 35000
Je vous laisse imaginer le nombre de calculs, sachant que j'ai deux fois cette partie de code dans mon programme!

Je vous remercie par avance.

Quentin Bruneau
A voir également:

4 réponses

q.bruneau Messages postés 12 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 3 juillet 2009
3 juil. 2009 à 08:04
Help me please! c'est urgent!

merci d'avance
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
3 juil. 2009 à 08:37
Salut.
Je ne voi rien de délirant dans le programme;
Tu peux essayer de réfléchir à simplifier les calculs booléen pour les faire sous forme matricielle. genre :
Mat_occurence_pos + 0.1*(J_em_mes>J_indice_pos - pas_I / 2)&&(J_em_mes <=J_indice_pos + pas_J / 2)...
Mais ce n'est pas évident, car il faut bien conditionner les matrices types J_indice_pos et pas_I
0
q.bruneau Messages postés 12 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 3 juillet 2009
3 juil. 2009 à 09:26
OK merci snipeur je vais essayer!

je reste ouvert à d'autres propositions ;)
0
up
0

Discussions similaires