J'ai un vecteur de "float" et j'aimerai garder uniquement les valeurs entières.
Quelle(s) méthode(s) est (sont) applicable(s)?
J'ai un vecteur de "float" et j'aimerai garder uniquement les valeurs entières.
Quelle(s) méthode(s) est (sont) applicable(s)?
Il y a plein de fonctions dans MATLAB qui font ça : round, floor, ceil, j'en oublie peut-être mais en regardant l'aide de l'une d'entre elles tu auras aussi les autres.
Salut,
Je te propose la fonction round.
C'est lié à un probléme de memoire ?
J'ai du mal m'exprimer
Je ne cherche pas à arrondir des floats mais à sélecttionner parmi des nombres ceux qui sont entiers (bien que le format soit float). Un exemple sera plus parlant:
a=[0;0.115;0.86;1;1;1.25;1.5;2]
resultat=[0;1;1;2]
J'ai trouvé une méthode:
. Il y a peut-être plus simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part result=a(a==round(a))
C'est quoi des "float" ? Tu dois parler de la classe Single (voire Double)
Deux solutions :
Ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 a = single([0;0.115;0.86;1;1;1.25;1.5;2]) idx = a==round(a); a(idx)
A noter que pour ma part, je prendrais la seconde. Pour éviter le problème de comparaison des nombres à virgules flottantes ("float"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 a = single([0;0.115;0.86;1;1;1.25;1.5;2]) idx = ~mod(a,1); a(idx))
Partager