Page personnelle de Samuel Boudet, Maître de conférence travaillant sur le traitement de signal biomédical.
Accueil L'électroencéphalographie Matlab Enigmes CV Liens
Si vous lisez ceci c'est que flash viewer n'est pas installé. Télécharger le ici pour une meilleur visualisation du site.
Vectorisation
Un des principaux inconvénients de Matlab est sa lenteur de calcul. Celle-ci est due au fait que Matlab est un langage interprété, c'est à dire que le code n'est pas compilé. Si vous programmez de la même façon qu’en C/C++ vous vous apercevrez que Matlab peut être 100 fois plus lent. Voici un exemple de code qui est particulièrement lent sous Matlab.
Les fonctions Matlab sont optimisées pour des données de grande dimension. Cependant pour des données de petite dimension le temps d'interprétation du code n'est pas négligeable et par conséquent le programme peut être très lent.

Dans l'exemple précédent Matlab interprète 1000000 fois le code de la fonction carre de la boucle for ce qui prend un temps considérable par rapport au temps nécessaire à l'opération.
Remplacer "t=carre(i);" par "t=i*i;" et vous observerez le temps de calcul diviser par presque 100.

Pour améliorer encore le temps de calcul, il est souvent recommandé d’utiliser la vectorisation. La vectorisation consiste à éviter l’écriture de boucles for en utilisant les opérations matricielles. Par exemple, soit a=1:1000000; écrire :
est plus rapide que
Noter l’utilisation de la commande zeros pour initialiser le tableau. Le programme fonctionnerait sans mais le temps d’exécution serait alors fortement augmenté du fait que la matrice p grandirait à chaque itération.



Dernières modifications : 26 Octobre 2010
| Administration