Bonjour à tous,
Je poste ici, un problème ou plutôt une question.
Je demande à matlab (version 7.6.0.324 mais pareil sur Matlab version 5.2.0.3084), de me créer une matrice d'une seule colonne et de la remplir de valeurs. Je lui indique (il me semble) les valeurs que je veux.
Pourtant, certaines des valeurs que je retrouve dans cette matrice colonne, diffèrent de celles que j'avais demandées.
Concrètement voilà mon code :
Je créer un vecteur que je veux remplir (ici de longitudes) allant de -110 à 70 avec un incrément de 0.2 degrés. Matlab me le crée
Code : Sélectionner tout - Visualiser dans une fenêtre à part a=(-110:0.2:70)';
A mon sens, les valeurs inclues dans "a" seraient par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >> whos Name Size Bytes Class Attributes a 901x1 7208 double
-110
-109.8
-109.6
...
Ce qu'elles sont en fait pour une grosse partie:
Mais pas pour toute.Si je tape:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 a(1:3) ans = 1.0e+002 * -1.100000000000000 -1.098000000000000 -1.096000000000000j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part >> a(180)
Au lieu de -74.2, et ceci que ce soit le format long ou format short. Disons qu'en format short j'ai un chiffre arrondi, donc je ne m'en étais pas rendu compte tout de suite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ans = -74.199999999999989
Mais après un test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 >> format short >> a(180) ans = -74.2000
Il semblerait que ma valeur, que je voulais égale à -74.2 ne l'est pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 a(180)==-74.2 ans = 0
Quelqu'un a une idée de pourquoi Matlab fait ça?
J'ai cherché dans le forum, du côté des "arrondis" mais je n'ai pas vraiment trouvé d'éléments de réponse.
Partager