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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    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 317
    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 317
    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?

  3. #3
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    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 317
    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 317
    Par défaut
    Le plus simple c'est alors d'utiliser la fonction XLSWRITE

  5. #5
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    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 317
    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 317
    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.

  7. #7
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    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
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    oui bien sur
    j'ai essaiyé de creer un fichier excel nommé monfichier dans le repertoire spécifié mais toujours meme pb rien ne se passe quand je clique sur le button resultat

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Est-ce que ce fichier est bien crée ?
    As-tu tenté de l'ouvrir directement sous Windows ?

  10. #10
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    oui moi j'ecris l'instruction aprés end
    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;
        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
     
         %   xlswrite(filename,M)
     
       end
      % filename='C:\MATLAB6p1\work\work2603oui\monfichier.xls';
        % xlswrite('filename',M);
          filename='monfichier.xls';
           xlswrite('C:\MATLAB6p1\work\work2603oui\monfichier.xls',M);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function varargout = resultat_Callback(h, eventdata, handles, varargin)
    %WINOPEN ('filename');
    WINOPEN ('C:\MATLAB6p1\work\work2603oui\monfichier.xls')
    %dos('monfichier.xls')
    comme résultat
    Undefined function or variable 'WINOPEN'.

  11. #11
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    non moi j'ai essaiyé de le créer manuellement çàd à partir de excel j'ai crée un fichier nommé "monfichier" et je le sauvegarde dans le repertoire spécifié
    je fais ça seulement pour voir si il sera remplir par les données quand j'excute
    mais rien ne se passe il reste vide

  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 317
    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 317
    Par défaut
    Euh... tu as la version 6.1 de Matlab !
    Tu ne possèdes ni XLSWRITE ni WINOPEN

    Donc la seule solution, c'est d'utiliser un controle ActiveX : Are there any examples that show how to use the ActiveX automation interface to connect MATLAB to Excel?

  13. #13
    Membre éclairé Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par défaut
    oui j'ai cette version
    j'ai lu la documentation de activex mais c'est tres tres lourd
    est ce que la version 6.5 ca marche avec winopen et xlswrite
    si non je vais commencer de nouveau par ce activex

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, 15h56
  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, 12h37
  3. Mettre des donnés dans une sous-form.
    Par MuadDib_II dans le forum IHM
    Réponses: 4
    Dernier message: 20/08/2008, 15h42
  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, 22h49
  5. Réponses: 2
    Dernier message: 15/12/2006, 11h31

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