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 :

Matlab arrondi ?


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut Matlab arrondi ?
    Bonjour,

    J'ai un petit soucis qui m'a couté plusieurs jours de deboggage dans mon programme:
    lorsque je met à jour une matrice (contenue dans une cell, je sais pas si ca change grand chose, normalement non) celle-ci se retrouve nulle alors qu'elle ne l'etait pas :
    voici la ligne concerné dans mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Dw{n-1} = this.eta .* d * x{n-1}';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    d * x {n-1}' = 0.0013  .  [1 1 1]  = [ 0.0013    0.0013    0.0013 ]
                   0.0100                [ 0.0103    0.0103    0.0103 ]
    et
    Donc le résultat est certes très petit mais ne devrais en aucune facon me donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [ 0   0   0]
    [ 0   0   0]
    meme si matlab fait linéairement this.eta .* d, cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1.0e-04 * [ 0.1300;  1.0000 ]
    qui n'est pas nul.

    Est-ce normal ? Y'a t-il une fonctionalité dans matlab qui m'échappe?

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,

    en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0.01.*[0.0013;0.0100]*[1 1 1]
    On obtient le bon résultat. Es-tu sur des valeurs de this.eta, d, et x{n-1}?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Essaye de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class(this.eta)
    class(d)
    class(x{n-1})
    et dite nous ce que ça retourne ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    Merci pour vos réponses.

    Citation Envoyé par kmaniche Voir le message
    Essaye de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class(this.eta)
    class(d)
    class(x{n-1})
    et dite nous ce que ça retourne ?
    ans =
    double

    ans =
    double

    ans =
    double

    Pourtant j'ai stoppé le programme, fais le calcul dans la fenetre de commande et cela à bien marché!!! Ensuite je le relance fais un pas et regarde la valeur affecté dans la cell et c'est une matrice de 0.
    L'erreur doit etre autre part c'est sur ! Matlab ne fait d'arrondis domme ca!
    Je vais me remettre dessus, je vous tiens au courant!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    Bon j'ai relancé un test et en fait pas de problème.
    Enfin c'était évident vous allez me dire l'erreur ne venait pas de matlab.
    Elle venait surement de variables que je manipulais qui n'etais pas dans le meme contexte (variables de l'objet et variable globale) je pense.

    Quoi qu'il en soit désolé d'avoir ouvert un thread pour ça, c'est juste que j'ai trouvé ça étrange et lorsque j'ai augmenté ces valeurs,mon algo a fonctionné donc je m'en suis pris à matlab.

    Je met donc en résolu!
    Merci les forumeurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Arrondi Matlab / access
    Par pwout dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/06/2015, 19h38
  2. [Math]Problème troncage ou arrondi sur des valeurs
    Par Carrel dans le forum Général Java
    Réponses: 6
    Dernier message: 07/10/2009, 15h11
  3. [BigDecimal] les arrondis...
    Par LoulouFifi dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 13/01/2004, 18h37
  4. création d'un bouton de forme arrondie
    Par THIERRY L. dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/12/2003, 14h04
  5. [VB6] Racine carrée + arrondi
    Par Krys29 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/10/2002, 13h19

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