IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Gérer les valeurs NAN


Sujet :

MATLAB

  1. #1
    Membre actif Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Points : 214
    Points
    214
    Par défaut Gérer les valeurs NAN
    Bonjour,

    j'utilise ces deux formules dans mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    teta=atan(u./v); 
     
    Teta_x=(Vx.*u-Ux.*v)./u.*u+v.*v;
    j'aimerai prévoir les valeurs NAN au lieu de les gérer à posteriori.

    Merci pour votre aide
    Un thésard a souvent un problème de motivation jusqu'au moment où il aura un problème de temps....

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ne manquerait-il pas des parenthèses?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Teta_x=(Vx.*u-Ux.*v)./(u.*u+v.*v);
    Sinon pour les NaN: ils sont générés par une division par 0, il te suffit donc de repérer les 0 dans les dénominateurs.

  3. #3
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Sinon pour les NaN: ils sont générés par une division par 0, il te suffit donc de repérer les 0 dans les dénominateurs.
    Il me semble que les NaN sont générés par l'opération 0/0, la "simple" division par 0 doit renvoyer Inf.
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Il me semble que les NaN sont générés par l'opération 0/0, la "simple" division par 0 doit renvoyer Inf.
    Exact, j'ai répondu un peu trop vite
    Selon la doc:
    Citation Envoyé par doc NaN
    These operations produce NaN:
    • Any arithmetic operation on a NaN, such as sqrt(NaN)
    • Addition or subtraction, such as magnitude subtraction of infinities as (+Inf)+(-Inf)
    • Multiplication, such as 0*Inf
    • Division, such as 0/0 and Inf/Inf
    • Remainder, such as rem(x,y) where y is zero or x is infinity

  5. #5
    Membre actif Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par Winjerome Voir le message

    Sinon pour les NaN: ils sont générés par une division par 0, il te suffit donc de repérer les 0 dans les dénominateurs.
    justement je cherche une idée pour repérer les 0 dans le dénominateur et le numérateur pour ne pas tomber dans une division de 0/0
    Un thésard a souvent un problème de motivation jusqu'au moment où il aura un problème de temps....

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bin simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Numerateur ==0
    denominateur ==0

  7. #7
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    oui, la comparaison avec 0 permet la détection.

    Sinon il y a aussi la fonction atan2, qui se charge normalement de gérer les cas particuliers de ce genre.

    A+

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par SmileSoft Voir le message
    j'aimerai prévoir les valeurs NAN au lieu de les gérer à posteriori.
    Quel est l'intérêt ?
    Pourquoi ne pas utiliser ISNAN après le calcul de Teta_x ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  9. #9
    Membre actif Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par Dut Voir le message
    Quel est l'intérêt ?
    Pourquoi ne pas utiliser ISNAN après le calcul de Teta_x ?
    je cherche les valeurs réelles ou proche et je n'ai pas de décision pour les valeurs NANs.
    Un thésard a souvent un problème de motivation jusqu'au moment où il aura un problème de temps....

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Tu peux remplacer les 0 par la valeur 'eps' du cout pas de division par zéro mais une valeur proche de 0.

Discussions similaires

  1. Mettre en groupe les valeurs NaN
    Par jena dans le forum MATLAB
    Réponses: 4
    Dernier message: 27/03/2014, 09h59
  2. smartGwt: gérer les valeurs de dynamicForm
    Par sabrina_sab dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 15/03/2013, 20h00
  3. [XL-2007] Gérer les tirets parmis les valeurs d'une cellule
    Par _shuriken_ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/07/2010, 14h18
  4. [JFreeChart] gérer les valeurs manquantes
    Par LuckyDj dans le forum 2D
    Réponses: 1
    Dernier message: 27/11/2009, 16h05
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo