J'ai le vecteur S = [S1, S2, S3, S4, S5], de taille variable (qui change selon les paramètres d’exécution de mon programme) dont les valeurs ne sont pas espacées linéairement (disons qu'elles sont aléatoires) et j'aimerai créé le vecteur V tel que :
V = [S1-x*pas, S1-(x-1)*pas, S1-(x-2)*pas, ... S1+x*pas, S2-x*pas, ... S2+x*pas, ... S5+x*pas].
Pour être un peu plus clair voici un petit exemple numérique :
Si S = [3 12 7], je voudrais (par exemple) que V = [3-2/10, 3-1/10, 3, 3+1/10, 3+2/10, 12-2/10, 12-1/10, 12, 12+1/10, 12+2/10, 7-2/10, 7-1/10, 7, 7+1/10, 7+2/10].
Actuellement, j'utilise une boucle pour remplir mon vecteur V de la manière suivante :
Code : Tout sélectionner
V = S(1)-x*pas : pas : S(1)+x*pas;
for a = 2 : length(S)
V = [V S(a)-x*pas : pas : S(a)+x*pas];
end
Je voulais donc savoir s'il existait dans Matlab (puisque je suppose que c'est le cas) une fonction permettant d'affiner le pas d'un vecteur (le vecteur S) contenant déjà des valeurs connues et qui ne sont pas forcément espacées linéairement.
J'ai recherché par moi même la solution en essayant différents algorithmes, puis sur internet et je n'ai rien trouvé (à vrai dire, je ne sais pas vraiment comment l'opération que j'essaie de réaliser s'appelle et donc je tape surement des mots clefs trop vagues ...).
Si jamais quelqu'un connait une fonction qui est déjà implémentée dans Matlab permettant d'obtenir mon vecteur V à partir du vecteur S ou a l'idée d'un algorithme (sans boucle !!!) pour arriver à ce résultat je suis preneur !
Maxinquaye