Bonjour à tous,
Je ne suis pas certaine d'être dans le bon thème de ce forum, mais j'espère que vous saurez quand même m'aider ...
Suite à un travail réaliser en amont (je vous passe les détails ), j'obtiens des valeurs de sin et cos.
Exemple :
ValeurCos = [0.72 : 0.02 : -0.26 : -0.67]
ValeurSin = [0.23 : -0.45 : -0.06 : 0.98]
ValeurCos(1) et ValeurSin(1) doivent me donner l'angle A1 en degré, ValeurCos(2) et ValeurSin(2) doivent me donner l'angle A2 en degré, etc ...
Comme je travaille en degré, je précise que j'utilise les fonctions de trigonométrie sind, cosd et tand et l'angle Ai est donné par :
Ai = atand( ValeurSin(i) / ValeurCos(i) )
Jusque là tout va très bien ... sauf que pour UNE valeur de atand(X) il peut y avoir DEUX angles A1 !
Je m'explique :
>> Si j'ai cos et sin qui sont deux valeurs positives, l'angle calculé qui ressort est le bon.
>> Si le cos ou le sin est une valeur négative, alors le quotient entre le sin et le cos donne une valeur négative. Comme Matlab considère que le cos est toujours positif (et donc que le négatif est forcément le sinus ... ), l'angle calculé ressort avec une "erreur" de 180° .
>> Si le sin et le cos sont négatifs, alors le quotient entre le sin et le cos donne une valeur positive ... et Matlab ne différencie pas -sin/-cos et sin/cos ... J'ai donc mon "erreur" de 180° .
Je pensais rajouter une condition à mon calcul du style :
Mais n'y a-t'il pas quelque chose de plus propre à faire ? N'existe t'il pas une fonction Matlab qui convertit un couple sin/cos en angle ? Car au final ces valeurs représentent simplement les coordonnées d'un vecteur de dimension égale à 1 ... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If cos(i) < 0 Ai = Ai - 180 end
Merci d'avance !!!
Partager