Matlab qui "change mes valeurs", problème de format?
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. 8O
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:
1 2 3 4
| >> whos
Name Size Bytes Class Attributes
a 901x1 7208 double |
A mon sens, les valeurs inclues dans "a" seraient par exemple:
-110
-109.8
-109.6
...
Ce qu'elles sont en fait pour une grosse partie:
Code:
1 2 3 4 5 6 7 8 9
| a(1:3)
ans =
1.0e+002 *
-1.100000000000000
-1.098000000000000
-1.096000000000000 |
Mais pas pour toute.Si je tape:j'obtiens:
Code:
1 2 3
| ans =
-74.199999999999989 |
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:
1 2 3 4 5 6
| >> format short
>> a(180)
ans =
-74.2000 |
Mais après un test:
Code:
1 2 3 4 5
| a(180)==-74.2
ans =
0 |
Il semblerait que ma valeur, que je voulais égale à -74.2 ne l'est pas...
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.