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

Interfaces Graphiques Discussion :

Visualiser des résultats sous forme d'un tableau (type Excel)


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut Visualiser des résultats sous forme d'un tableau (type Excel)
    Bonjour à tous,

    je veux réaliser une interface graphique sur matlab

    J'ai dans mon interface graphique des cases qui me permettent de lire et afficher des valeurs. Je fais entrer le nombre de rectangle Qnbr, sa hauteur H et largeur L.

    Je veux calculer le nombre de barres, appelé par ex chL, qui égale 2*H une barre a une longueur de 6 m, la chute chuteL= 600-nbrL

    J'ai réussi à afficher la chute totale ( on considère une valeur calculée chute si elle est inférieure à H)
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function varargout = calculer_Callback(h, eventdata, handles, varargin)
          L = get(handles.L,'String');
          H = get(handles.H,'String');
          L= str2double(L);
          H = str2double(H);
          Qnbr=get(handles.Qnbr,'String');
          Qnbr= str2double(Qnbr);
     
          nbrL=0;
          chL=0;
          chuteL=0;
          K=1;
     
          for i=1:2*Qnbr
     
           nbrL=nbrL+H;
           chL=600-nbrL;
     
     
          if chL<H   
            if i==2*Qnbr K=K; 
          else  K=K+1; end
               nbrL=0;
               chuteL=chuteL+chL;
     
     
           end
           LL=chuteL;
     
           if i==2*Qnbr & chL>=H
               LL=chL+LL;
           end
           set(handles.ILL,'string',K);     
         set(handles.IL,'string',LL); 
    end  
     
         set(handles.ILL,'string',K);     
         set(handles.IL,'string',LL);
    Mon problème c'est que je veux afficher la valeur calculée en chaque itération et la considérer chute si elle est inférieure à H.

    Comment afficher ces valeurs dans un tableaux en matlab ou en excel avec 3 colonnes :
    1. itération
    2. valeur calculée
    3. chute ( si <H)

    Quelqu'un peut-il m'aider???

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Pour écrire itérativement dans une matrice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for n=1:5 
       M(n,1)=n;
       M(n,2)=-n;
       M(n,3)=rand;
    end
     
    M
    Sinon Matlab possède une excellente documentation

    Ensuite il n'y a pas d'objet graphique de type tableau dans Matlab.
    Il est néanmoins possible d'utiliser un controle ActiveX.
    Plus d'infos à ce sujet : How can I use a table in my MATLAB GUI?
    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)

  3. #3
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    merci pour votre aide, mais j'ai encore quelques questions :

    Puisque le GUIDE Matlab ne possède pas d'objet tableau, est ce possible de transférer par exemple les données vers un fichier excel ou word ? Car moi, dans mon programme, je veux afficher les chutes et la valeur calculée en chaque itération. Donc si possible de créer un bouton dans mon interface qui, lorsque je clique dessus, m'ouvre un fichier qui contient ces valeurs ?

    Je n'ai aucune idée sur ça est que vous pouvez m'aider

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Le plus simple c'est alors d'utiliser la fonction XLSWRITE
    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)

  5. #5
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    Je te remercie pour ton aide mais, peux-tu me corriger ce code
    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
    23
    24
    25
    26
    27
    28
    29
    30
    function varargout = calculer_Callback(h, eventdata, handles, varargin)
          L = get(handles.L,'String');
          H = get(handles.H,'String');
          L= str2double(L);
          H = str2double(H);
          Qnbr=get(handles.Qnbr,'String');
          Qnbr= str2double(Qnbr);
     
          nbrL=0;
          chL=0;
          chuteL=0;
          K=1;
     
          for i=1:2*Qnbr
     
           nbrL=nbrL+H;
           chL=600-nbrL;
        M(i,1)=nbrL;
        M(i,2)=chL;
     
          if chL<H   
            if i==2*Qnbr K=K; 
          else  K=K+1; end
               nbrL=0;
               chuteL=chuteL+chL;
             M(i,3)=K;
             M(i,4)=chuteL;
     
           end
    XLWRITE(Filename,M) % je sais pas comment je déclare ce filename

  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 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Filename est une chaine de caractères contenant le nom du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    filename='monfichier.xls';
    xlswrite(filename,M)
    Lit bien la documentation et regardes bien les exemples en bas de celle-ci.
    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)

  7. #7
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    Mais quelle instruction je dois écrire dans mon bouton pour m'ouvrir ce ficher (un bouton qui porte le nom "résultat" et qui ouvre ce fichier excel) ?

  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 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Ajoute dans le Callback du bouton :
    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 du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    Une question qui peut sembler bête mais désolé c'est la premiére fois que je travaille sur une interface graphique en matlab. Ce fichier "monfichier", est-ce que c'est moi qui doit le créer manuellement dans mes documents ou bien automatiquement Matlab le créer et choisi le chemin ?

    Merci d'avance

  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 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Si tu donnes juste le nom du fichier, Matlab le créera automatiquement dans le répertoire courant.

    Si tu veux le mettre dans un autre répertoire, il te faudra gérer le chemin complet.

    Tu peux aussi utiliser les fonctions UIGETFILE/UIPUTFILE pour gérer ces actions dynamiquement.
    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 du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    ok j'ai compris ce qui concerne le chemin
    j'ai essayé d'executer mon programme mais rien ne se passe
    voila mon code telle qu'il est :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    function varargout = calculer_Callback(h, eventdata, handles, varargin)
          L = get(handles.L,'String');
          H = get(handles.H,'String');
          L= str2double(L);
          H = str2double(H);
          Qnbr=get(handles.Qnbr,'String');
          Qnbr= str2double(Qnbr);
     
          nbrL=0;
          chL=0;
          chuteL=0;
          K=1;
     
          for i=1:2*Qnbr
     
           nbrL=nbrL+H;
           chL=600-nbrL;
        M(i,1)=nbrL;
        M(i,2)=chL;
     
          if chL<H   
            if i==2*Qnbr K=K; 
          else  K=K+1; end
               nbrL=0;
               chuteL=chuteL+chL;
              M(i,3)=K;
              M(i,3)=chuteL;
     
           end
           filename='monfichier.xls';
            xlswrite(filename,M)
     
       end
    dans mon interfacce je lis les valeur de H, L et Qnbr
    et j'ai un boutton Resultat qui dois m'ouvres ce fichier
    mais le pb rien ne se passe!!!

  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 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Qu'as-tu mis dans le Calback du bouton "résultat" ?
    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 du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    seulement cette instruction
    dos('monfichier.xls')

  14. #14
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Tu es sur qu'il n'y a pas de message d'erreurs dans la fenêtre de commande de Matlab ? As-tu cherché manuellement ce fichier pour vérifier son contenu ?
    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)

  15. #15
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    voila le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    monfichier.xls' n'est pas reconnu en tant que commande interne 
    ou externe, un programme ex‚cutable ou un fichier de commandes.
    j'ai verifié le contenu rien de nouveau

  16. #16
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    C'est très certainement à cause d'un problème de chemin d'accès au fichier. Il faut que tu le précise dans ton programme. Voila l'idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlswrite('c:\monfichier.xls',M);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dos('c:\monfichier.xls')
    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)

  17. #17
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    Vraiment je sais pas où est l'erreur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:\MATLAB6p1\work\work2603oui\monfichier.xls' n'est pas reconnu en tant que commande interne 
    ou externe, un programme ex‚cutable ou un fichier de commandes.
    même problème

  18. #18
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Utilise WINOPEN à la place de DOS.
    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)

  19. #19
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    bonjour désolé pour le ratard
    j'ai essayé par winopen mais toujours le même problème (rien ne s'affiche)

  20. #20
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    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 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Dans le code de la fonction calculer_Callback, il faut que tu mettes le bloc d'écriture dans le fichier en dehors de la boucle FOR-END:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i=1:2*Qnbr
       <...>
    end
     
    filename='monfichier.xls';
    xlswrite(filename,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)

Discussions similaires

  1. Afficher des données sous forme d'un tableau.
    Par Khaoula.85 dans le forum MFC
    Réponses: 3
    Dernier message: 29/10/2009, 14h56
  2. [Acc_07] passez des donné d'un sous form au form
    Par alex77140 dans le forum IHM
    Réponses: 2
    Dernier message: 20/02/2009, 11h37
  3. Mettre des donnés dans une sous-form.
    Par MuadDib_II dans le forum IHM
    Réponses: 4
    Dernier message: 20/08/2008, 14h42
  4. Problème de présentation des données sous forme d'un tableau HTML
    Par LaurentDRE dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 05/08/2008, 21h49
  5. Réponses: 2
    Dernier message: 15/12/2006, 10h31

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