Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Calculer les centiles et valeurs NaN

Résolu !
Accéder à la solution

Bonjour,

 

il me semble que le VI centiles calcul mal dès qu'il y a une valeur "NaN" dans le tableau d'entrée. En effet il faudrait que les valeurs "NaN" soient totalement ignorées dans le calcul d'un centile (celà n'a pas de sens de situer NaN vis à vis des autres nombres, ni dire que 10% des valeurs du tableau sont supérieures à NaN).

Actuellement on peut avoir NaN en sortie car le VI ne fait que trier le tableau et  chercher dedans.

Cela semble cohérent que -Inf et +Inf soient considérés comme étant des valeurs et donc fassent partie du calcul du centile, mais NaN c'est totalement absurde.

Que pensez vous du fonctionnement de ce VI ? 

Cordialement,

0 Compliments
Message 1 sur 7
5 567 Visites

salut la valeur symbolique « NAN » pour signifier « Pas un nombre », de l’anglais « Not A Number », représente la valeur à virgule flottante produite par des opérations non valides ou des calculs erronés. Par définition les opérations à virgule flottante propagent NaN, toutes les opérations qui utilisent cette donnée donneront un résultat égal à NAN. Donc pour moi logique.

Si tu veux pas, tu supprimes les NAN avant la fonction

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 2 sur 7
5 564 Visites

Justement ce n'est pas le cas, NaN n'est pas propagé partout, mais considéré comme un nombre supérieur à +Inf. Donc en sortie on peut avoir n'importe quoi : -Inf, +Inf, NaN ou un réel.

C'est perturbant, il faudrait que le VI soit moins suprenant :

  • soit propager NaN en sortie si NaN fait partie des éléments d'entrée
  • soit ne pas tenir compte de NaN losqu'on cherche un centile (et correspondre à la définition : "C" tels que x% des données sont supérieures à C).

 

Message 3 sur 7
5 558 Visites

Typiquement cette réponse ne me convient pas Smiley surpris :

souci_percentile.png

 

La réponse devrait être :

  • 3 si on considère qu'il faut ignorer NaN
  • NaN si on considère que NaN "se propage partout" (mais j'ai du mal à voir pourquoi lorsqu'on cherche à situer des nombres entre eux, comment NaN serait considéré par rapport aux autres)

Cordialement.

Message 4 sur 7
5 552 Visites

Effectivement je n'avais pas compris. Je suis d'accord avec vous et je vote pour propager NaN en sortie si NaN fait partie des éléments d'entrée. A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 5 sur 7
5 549 Visites

C'est effectivement un bug, et il sera corrigé dans une prochaine version de LabVIEW.

Message 6 sur 7
5 475 Visites
Solution
Accepté par l'auteur du sujet ec01

bravo! tu peux donc femer le post avec "résolu". A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

Message 7 sur 7
5 460 Visites