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 :

comment prendre 5 chiffres apres la virgule sans que MATLAB ne les arrondissent


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Points : 16
    Points
    16
    Par défaut comment prendre 5 chiffres apres la virgule sans que MATLAB ne les arrondissent
    Bonjour a tous,

    SVP j'aimerais enserrer un tableau (2 colonne et 21 ligne) sous matlab pour tracer un graphe, j'ai besoin d'une certaine précision.
    quand j'introduis mes données qui sont de 5 chiffre apres la virgule, matlab les arrondi automatiquement en 4 chiffre !! moi je veux garder les valeurs exactes car cela fausse ma courbe...

    dites moi SVP comment je fais?

    je vous remercie

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    Sur ton fichier, il faut ajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    help format % pour voir ce que matlab propose
     
    % Ajouter 
    FORMAT SHORT  % Scaled fixed point format with 5 digits

    comme ça, Matlab prend tes 5chiffres après la virgule sans les arrondir

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Citation Envoyé par ginafort Voir le message
    quand j'introduis mes données qui sont de 5 chiffre apres la virgule, matlab les arrondi automatiquement en 4 chiffre !!
    Aucun arrondi n'est effectué, c'est un simple problème d'affichage, toutes les décimales sont bien prises en compte par MATLAB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> a = pi
     
    a =
     
        3.1416
     
    >> sprintf('%.15f',a)
     
    ans =
     
    3.141592653589793
    La fonction FORMAT ne fait que modifier l'affichage du contenu des variables, pas leurs valeurs

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    ok j'ai chercher sur le help,

    il faut ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format long, a, single(a)

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Dut Voir le message
    Aucun arrondi n'est effectué, c'est un simple problème d'affichage, toutes les décimales sont bien prises en compte par MATLAB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> a = pi
     
    a =
     
        3.1416
     
    >> sprintf('%.15f',a)
     
    ans =
     
    3.141592653589793
    La fonction FORMAT ne fait que modifier l'affichage du contenu des variables, pas leurs valeurs

    ah ok je vous remercie,
    car meme en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format long, a, single(a)
    mon graphe na pas changé.

    alors pourquoi ce n'est pas la meme courbe que j'obtiens avec origine (quand j'utilise les meme donnée biensur)!!!!!!!!!

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Citation Envoyé par ginafort Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format long, a, single(a)
    Cette ligne de code ne sert à rien !

    Je répète que si le graphique n'est pas correcte, c'est certainement que les données initiales ne sont pas bonnes.

    Sans plus d'informations, nous ne pouvons pas t'aider.

    Montre nous ton code et attache le fichier dans lequel tu lis tes données à ton prochain message (met le dans une archive zip ou rar)

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    vous trouvez ci joint ce que j'obtiens avec origine et matlab.
    j'ai pris les meme données et je les ai inseré sur matlab.

    au sommet j'ai deux points, donc je pense que matlab a lié les deux point par une droite directement!
    Images attachées Images attachées   

  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 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Voir par exemple la fonction INTERP1 ou la fonction SPLINE (et/ou PCHIP) pour interpoler les valeurs "manquantes"

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    svp quelle est le syntax a ecrire,
    j'ai essayé avec 'spline' mais j'ai pas reussi!

    j'ai un tableau de 2 colonne,
    x represente la premiere colonne et
    y represente la deuxième colone
    et je veux tracer y=f(x)

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Voici un exemple de spline qui va de ma première valeur X1 à X final sur 200 point

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    % X = [-55:10:65];   % Permet d'aller de -55 jusqu'à 65 de 10 en 10
     
    X1 = [1:1:length(F)]; 
    UF = F(:,1);
    x1 = linspace(X1(1),X1(end),200);
    F200pts = spline(X1,UF,x1);
    Je ne sais pas si ca auras pu t'aider

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    pour etre plus claire voila moi ce que j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    a=[0	0.21532
    2.08221	0.62523
    4.72415	2.11258
    8.07636	3.93847
    12.32972	5.05382
    17.72652	5.05955
    24.57404	4.59267
    ]
     
    a =
     
             0    0.2153
        2.0822    0.6252
        4.7241    2.1126
        8.0764    3.9385
       12.3297    5.0538
       17.7265    5.0595
       24.5740    4.5927
     
    x=a(:,1);
    y=a(:,2);
    plot(x,y)
    et j'obtiens la courbe si attaché, mais comme j'ai pas beaucoup de points ma courbe n'est pas bien courber si je peux dire cela!!!
    et j'ai pas su comment introduire 'spline
    Fichiers attachés Fichiers attachés

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Je pense qu'il fraudais que tu spline xa et ya !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    nb = 200% nb de points
     
    X1 = [1:1:length(a(:,1))]; 
    Uax = a(:,1);
    x1 = linspace(X1(1),X1(end),nb);
    ax200pts = spline(X1,Uax,x1);
     
    Y1 = [1:1:length(a(:,2))]; 
    Uay = a(:,2);
    y1 = linspace(Y1(1),Y1(end),nb);
    ay200pts = spline(Y1,Uay,y1);
     
    plot(ax200pts,ay200pts)
    Chez moi ca fonctionne ! tu me tiens au courant

  13. #13
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    je vous remercie.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    oubli pas de mettre résolu !

  15. #15
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut excuse
    bonjour a tous,

    pour moi non

    j'ai une figure surlaquelle je veux afficher le 10eme digit
    mais matlab l'arrondit

    et il m'affiche 9.123 * 10^9

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

Discussions similaires

  1. Float et affichage de 3 chiffres après la virgule sans arrondi
    Par Lolitaaa dans le forum Général Java
    Réponses: 3
    Dernier message: 20/05/2011, 10h59
  2. Réponses: 26
    Dernier message: 15/10/2010, 13h18
  3. Réponses: 3
    Dernier message: 11/06/2010, 10h54
  4. Réponses: 2
    Dernier message: 31/03/2008, 11h27
  5. prendre seulement 2 chiffres aprés la virgule
    Par devlopassion dans le forum C++Builder
    Réponses: 11
    Dernier message: 23/11/2006, 09h44

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