Salut à tous,
Letitre ne doit pas vous dire grand chose... Voila donc le détail
J'ai créer un fonction "DoSind(x)" qui calcul un sinus par approximation à partir d'une lookup table.
Pour résumer je calcul et stock une seul fois un tableau de valeur couvrant la plage de la fonction sind (environ 300 pts) et entre ces valeur j'estime la valeur du sinus par régression linéaire.
Ce type de calcul à pour bute d'accélérer le traitment dans un microcontroleur qui ne possède pas de traitment mathématique.
J'utilise donc cette méthode pour simuler ce que je vais utiliser dons mon µP.
Le problème sous matlab, pour créer une seul fois le tableau:
Lors de la première exécution de ma fonction je calcul et crée mon tableau.
Puis je le stock dans une "appdata" (setappdata(0,'SinTable',...)).
A l'éxécution suivante je récupère mon appdata (getappdata(0,'SinTable').
Le problème est que ma fonction est exécutée un très grand nombre de fois. Et elle est très très lente (alors qu'en toute logique elle aurait du être plus rapide).
J'ai regardé à l'aide du "profiler" et c'est bien le getappdata qui mange tout mon mon temps.
J'ai essayé le stockant en global mais le résultat est identique.
Avez-vous une idée de comment soit accélérer la récupération de mon tableau ou alors de conserver mon tableau de manière diférente entre chaque appel de ma fonction . En sachant que pour des raisons pratique j'aimerais conserver ma fonction sour la forme (y = sin(x)).
Partager