[Scilab] Optimisations basiques


Quelques optimisations basique à utiliser dans Scilab (utilisées dans le cadre d’un récepteur GPS en soft).

Le premier point est de supprimer les boucles:
– Optimisation des multiplications entre éléments de deux matrices (attention pas la multiplication des matrices):

for k = 1:SIZE
     tmp_carrier(k) = prn_bpsk(k) * gps_data(k);
end
tmp_carrier = prn_bpsk .* gps_data;

– Recherche et remplacement de valeur dans une matrice:

//Replace 0 by -1
 prn(prn == 0) = -1;

Dans tous les cas privilégiez l’utilisation des fonctions intégrées tel que max() , find() et les opérations/opérateurs vectoriels. Je n’ai pas fait de mesures précises mais la recherche de PRN prends une dizaines de secondes avec ses optimisations au lieu de plusieurs MINUTES avec des boucles imbriquées.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s