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 :

Personnaliser la précision des résultats des calculs


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Points : 18
    Points
    18
    Par défaut Personnaliser la précision des résultats des calculs
    bonjour,
    je veux que mes resultats soit avec 6 chiffres apres la virgule de precision, alors que par defaut c'est 4
    et si je met
    alors c'est 15 apres la virgule => c'est trop
    d'apres le help format :
    j'ai pas trouvé comment fixé le nombre de chiffre que je desire




    merci

  2. #2
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Points : 18
    Points
    18
    Par défaut
    bien sur j'ai vu le help et le doc
    mais j'ai pas trouvé

  4. #4
    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
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Un peu de lecture dans la :
    Pourquoi MATLAB affiche-t-il des valeurs tronquées?
    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.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Points : 18
    Points
    18
    Par défaut
    j'ai feuilleté la faq avant de poster mais rien
    et le lien de la faq que tu m'a indiqué ne donne que le probleme et pas la solution

    alors que faire

    merci en tous ca

  6. #6
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    pour afichier des formats particuliers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(1, 'mon_format_a_moi\n', valeur) ;
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    M = sqrt(magic(3)) ;
    for k=1:3
    fprintf(1, '%7.2g ', M(k,:)) ;
    fprintf(1,'\n');
    end
    Tu trouves ça laid, comme code ?
    moi aussi mais j'ai rien d'autre en magasin.
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Points : 18
    Points
    18
    Par défaut
    merci
    ca marche en changeant le
    %7.2
    mais moi j'ai un programme qui fait beaucoup de calcul
    la valeur propre d'une matrice et les multiplication de matrices et j'affiche directement les resultats (+de 150 lignes ) et (+ de 500 lignes de resultat)

    ne trouve je pas une methode que je dois personnaliser en haut du prog
    et ca va faire le tout comme format long ..........
    c'est pas pro de faire les boucles et les fprintf chaque fois


    merci

  8. #8
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    essaye ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num2str(sqrt(magic(3)), '%7.2g')
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Points : 18
    Points
    18
    Par défaut
    puisque il n'y a pas qlq chose du genre format long ....
    ok meme celle ci ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num2str(sqrt(magic(3)), '%7.2g')
    merci ol9245 pour ton coup de main

  10. #10
    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 ol9245 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    M = sqrt(magic(3)) ;
    for k=1:3
    fprintf(1, '%7.2g ', M(k,:)) ;
    fprintf(1,'\n');
    end
    Tu trouves ça laid, comme code ?
    La même chose sans la boucle FOR-END :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    M = sqrt(magic(3));
     
    fmt = [repmat('%.6f ',1,size(M,2)-1) '%.6f\n'];
    fprintf(fmt,M.')
    Pour comprendre l'astuce, il suffit de se rappeler comment MATLAB stocke les matrices en mémoire.
    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)

  11. #11
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Dut Voir le message
    La même chose sans la boucle FOR-END :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    M = sqrt(magic(3));
     
    fmt = [repmat('%.6f ',1,size(M,2)-1) '%.6f\n'];
    fprintf(fmt,M.')
    Pour comprendre l'astuce, il suffit de se rappeler comment MATLAB stocke les matrices en mémoire.
    Ta proposition est plus compacte que celle que tu cites (mais num2str(sqrt(magic(3)), '%7.2g') reste la meilleure). Quand à la qualifier de jolie ...
    * peu lisible
    * génère une matrice de format de même enconbrement mémoire que la matrice à imprimer

    En fait le fond de l'histoire est que j'ai subtilement découvert que tu étais entrain de digérer la dinde du réveillon. Alors je me suis fixé le challence de, au moins une fois depuis que je te connais, donner la bonne réponse avant toi . Il ne te reste qu'à montrer que tu n'es pas mauvais perdant

    J'en profite pour te souhaiter la bonne année, et te remercier 1000 fois pour ton aide si précieuse sur le forum.
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  12. #12
    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 ol9245 Voir le message
    Il ne te reste qu'à montrer que tu n'es pas mauvais perdant


    Citation Envoyé par ol9245 Voir le message
    * génère une matrice de format de même enconbrement mémoire que la matrice à imprimer
    , la taille de la matrice fmt est uniquement proportionnelle au nombre de colonnes de la matrice M
    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)

  13. #13
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    oula !
    j'avais pas pris le temps de décoder en détail ton petit code.

    ben oui, t'es trop fort quoi !
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

Discussions similaires

  1. [OpenOffice][Tableur] Comment écrire une macro avec 2 variables et enregistrement des résultats du calcul
    Par Pascaltech dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 09/09/2015, 18h00
  2. Réponses: 3
    Dernier message: 30/06/2009, 19h16
  3. Récupération des résultats des méthodes dans un service WCF
    Par est09 dans le forum Windows Communication Foundation
    Réponses: 16
    Dernier message: 02/04/2009, 16h44
  4. Limiter le résultat des résultats
    Par francois78 dans le forum Access
    Réponses: 2
    Dernier message: 15/06/2005, 12h48

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