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 :

problème popup menu [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Points : 97
    Points
    97
    Par défaut problème popup menu
    Bonjour,
    J'utilise un GUI pour faire une analyse discriminante de Fisher sur des données. J'ai un problème dans l'utilisation d'un popupmenu. J'utilise ce bouton pour effectuer la sélection de variables (pour le moment, je ne fais qu'avec 3), et je veux les représenter graphiquement.
    Mais seul mon premier graphe :
    handles.current_data=A;
    plot(handles.current_data);
    s'affiche. J'ai beau cliquer sur mon popup menu, rien ne change.

    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
     
    function fisherdiscriminantanalysis_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to fisherdiscriminantanalysis (see VARARGIN)
     
    %%%%%%%%%%%%%%%%%%%%%%% DATA initial plot / Create the data to plot
    A=[
       JTLdata1(:,1),JTLdata1(:,2),JTLdata1(:,15),JTLdata1(:,16),JTLdata1(:,23),JTLdata1(:,24),JTLdata1(:,31),JTLdata1(:,32),JTLdata1(:,35),JTLdata1(:,36),JTLdata1(:,37),JTLdata1(:,38),JTLdata1(:,43),JTLdata1(:,44) ;
       JTLdata2(:,1),JTLdata2(:,2),JTLdata2(:,15),JTLdata2(:,16),JTLdata2(:,23),JTLdata2(:,24),JTLdata2(:,31),JTLdata2(:,32),JTLdata2(:,35),JTLdata2(:,36),JTLdata2(:,37),JTLdata2(:,38),JTLdata2(:,43),JTLdata2(:,44) ;
       JTLdata3(:,1),JTLdata3(:,2),JTLdata3(:,15),JTLdata3(:,16),JTLdata3(:,23),JTLdata3(:,24),JTLdata3(:,31),JTLdata3(:,32),JTLdata3(:,35),JTLdata3(:,36),JTLdata3(:,37),JTLdata3(:,38),JTLdata3(:,43),JTLdata3(:,44) ;
       JTLdata4(:,1),JTLdata4(:,2),JTLdata4(:,15),JTLdata4(:,16),JTLdata4(:,23),JTLdata4(:,24),JTLdata4(:,31),JTLdata4(:,32),JTLdata4(:,35),JTLdata4(:,36),JTLdata4(:,37),JTLdata4(:,38),JTLdata4(:,43),JTLdata4(:,44) ;
       JTLdata5(:,1),JTLdata5(:,2),JTLdata5(:,15),JTLdata5(:,16),JTLdata5(:,23),JTLdata5(:,24),JTLdata5(:,31),JTLdata5(:,32),JTLdata5(:,35),JTLdata5(:,36),JTLdata5(:,37),JTLdata5(:,38),JTLdata5(:,43),JTLdata5(:,44) ]   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DATA
     
    handles.var1=[JTLdata1(:,1);JTLdata2(:,1)];
    handles.var2=JTLdata1(:,2);
    handles.var3=[JTLdata1(:,3);JTLdata2(:,3)];
     
    handles.current_data=A;
    plot(handles.current_data);
     
    % Choose default command line output for fisherdiscriminantanalysis
    handles.output = hObject;
     
    % Update handles structure
    guidata(hObject, handles);
    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
     
    function varpopupmenu1_Callback(hObject, eventdata, handles)
    % hObject    handle to varpopupmenu1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Hints: contents = get(hObject,'String') returns varpopupmenu1 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from varpopupmenu1
     
    val=get(hObject,'Value');
    str=get(hObject,'String');
    switch str{val}
        case 'var 1' %user selects variables
            handles.current_data=handles.var1;
        case 'var 2'
            handles.current_data=handles.var2;
        case 'var 3'
            handles.current_data=handles.var3;
    end
     
    guidata(hObject,handles);
    Quelqu'un voit-il pourquoi?
    Dois-je fournir plus de renseignements?

  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 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Je ne suis pas sur de tout comprendre mais je ferais peut être comme ceci :

    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
    function fisherdiscriminantanalysis_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to fisherdiscriminantanalysis (see VARARGIN)
    
    %%%%%%%%%%%%%%%%%%%%%%% DATA initial plot / Create the data to plot
    A=[
       JTLdata1(:,1),JTLdata1(:,2),JTLdata1(:,15),JTLdata1(:,16),JTLdata1(:,23),JTLdata1(:,24),JTLdata1(:,31),JTLdata1(:,32),JTLdata1(:,35),JTLdata1(:,36),JTLdata1(:,37),JTLdata1(:,38),JTLdata1(:,43),JTLdata1(:,44) ;
       JTLdata2(:,1),JTLdata2(:,2),JTLdata2(:,15),JTLdata2(:,16),JTLdata2(:,23),JTLdata2(:,24),JTLdata2(:,31),JTLdata2(:,32),JTLdata2(:,35),JTLdata2(:,36),JTLdata2(:,37),JTLdata2(:,38),JTLdata2(:,43),JTLdata2(:,44) ;
       JTLdata3(:,1),JTLdata3(:,2),JTLdata3(:,15),JTLdata3(:,16),JTLdata3(:,23),JTLdata3(:,24),JTLdata3(:,31),JTLdata3(:,32),JTLdata3(:,35),JTLdata3(:,36),JTLdata3(:,37),JTLdata3(:,38),JTLdata3(:,43),JTLdata3(:,44) ;
       JTLdata4(:,1),JTLdata4(:,2),JTLdata4(:,15),JTLdata4(:,16),JTLdata4(:,23),JTLdata4(:,24),JTLdata4(:,31),JTLdata4(:,32),JTLdata4(:,35),JTLdata4(:,36),JTLdata4(:,37),JTLdata4(:,38),JTLdata4(:,43),JTLdata4(:,44) ;
       JTLdata5(:,1),JTLdata5(:,2),JTLdata5(:,15),JTLdata5(:,16),JTLdata5(:,23),JTLdata5(:,24),JTLdata5(:,31),JTLdata5(:,32),JTLdata5(:,35),JTLdata5(:,36),JTLdata5(:,37),JTLdata5(:,38),JTLdata5(:,43),JTLdata5(:,44) ]   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DATA
    
    handles.var{1}=[JTLdata1(:,1);JTLdata2(:,1)];
    handles.var{2}=JTLdata1(:,2);
    handles.var{3}=[JTLdata1(:,3);JTLdata2(:,3)];
    
    plot(handles.var{handles.current_data});
    
    % Choose default command line output for fisherdiscriminantanalysis
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    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
    function varpopupmenu1_Callback(hObject, eventdata, handles)
    % hObject    handle to varpopupmenu1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: contents = get(hObject,'String') returns varpopupmenu1 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from varpopupmenu1
    
    val=get(hObject,'Value');
    str=get(hObject,'String');
    switch str{val}
        case 'var 1' %user selects variables
            handles.current_data=1;
        case 'var 2'
            handles.current_data=2;
        case 'var 3'
            handles.current_data=3;
    end
    
    guidata(hObject,handles);
    Je ne vois pas très bien à quoi sert la variable A ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Points : 97
    Points
    97
    Par défaut
    Merci pour la solution.
    La variable A ne sert pas à grand chose, c'est juste que je ne veux pas afficher une des variables "par défaut", à l'ouverture de la fenêtre, donc j'avais choisi d'afficher ces variables, mais ça n'a aucune importance.

    J'obtiens cette erreur avec cette solution :
    ??? Reference to non-existent field 'current_data'.

    Error in ==> fisherdiscriminantanalysis>fisherdiscriminantanalysis_OpeningFcn at 79
    plot(handles.var{handles.current_data});

    Error in ==> gui_mainfcn at 153
    feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});

    Error in ==> fisherdiscriminantanalysis at 42
    gui_mainfcn(gui_State, varargin{:});
    Je remets la fonction :
    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
    function fisherdiscriminantanalysis_OpeningFcn(hObject, eventdata, handles, varargin)
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\JTL_julk1.mat');
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\JTL_julk2.mat');
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\JTL_julk3.mat');
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\JTL_julk4.mat');
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\JTL_julk5.mat');
     
     
    handles.var{1}=[JTLdata1(:,1);JTLdata2(:,1)];
    handles.var{2}=JTLdata1(:,2);
    handles.var{3}=[JTLdata1(:,3);JTLdata2(:,3)];
     
    plot(handles.var{handles.current_data}); %ligne 79
     
     
    handles.output = hObject;
     
    guidata(hObject, handles);
     
    % UIWAIT makes fisherdiscriminantanalysis wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    Faut-il définir d'une manière ou d'une autre le handles.current_data dans
    plot(handles.var{handles.current_data});
    ?

    Merci

  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 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Pourquoi avoir mis les instructions dans le Callback d'ouverture de l'interface ?
    Pourquoi ne pas plutôt utiliser un bouton pour demander le tracé de la courbe choisie dans le popupmenu ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Points : 97
    Points
    97
    Par défaut
    C'est bien vrai.
    J'ai annulé mon tracé "par défaut", et j'ai mis plot dans function varpopupmenu1_Callback, maintenant ça marche.
    Dans mon projet, j'ai 59 variables et je suis sensée pouvoir en choisir jusqu'à une dizaine pour calculer des moyennes ....
    Je me demande s'il n'y a pas un moyen plus rapide qu'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    handles.var{1}=[JTLdata1(:,1);JTLdata2(:,1)];
    handles.var{2}=JTLdata1(:,2);
    handles.var{3}=[JTLdata1(:,3);JTLdata2(:,3)];
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    val=get(hObject,'Value');
    str=get(hObject,'String');
    switch str{val}
        case 'var 1' %user selects variables
            handles.current_data=1;
        case 'var 2'
            handles.current_data=2;
        case 'var 3'
            handles.current_data=3;
    end
     
    plot(handles.var{handles.current_data});
    guidata(hObject,handles);
    pour 59 variables. Connaissez-vous un autre moyen de faire ça?

    Mon deuxième problème est que je vois pas bien comment ajouter des variables après la 1ère : avec le switch du Callback, je ne peux faire qu'un choix. Donc, il faudrait que je demande à l'utilisateur combien de variables il veut utiliser et ensuite je fais une boucle dans le Callback qui passe dans le switch autant de fois que nécessaire. Mais je ne sais pas si je pourrais toujours utiliser ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot(handles.var{handles.current_data});
    Est-ce que {handles.current_data} peut faire référence à plusieurs variables ?

    Merci d'avance

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Je sais pas si j'ai tout compris mais si tu souhaites choisir plusieurs variables à la fois, il ne serait pas plus intéressant d'utiliser une listbox?

    Et après pour connaitre les variables courantes, il "suffirait" de récupérer les indices sélectionnés dans la listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    handles.current_data = get(handles.LtVariables, 'Value');
    Si tu utilises une listbox, pour faire une multi-sélection, il faut définir la propriété Min à 0 et Max à 2 (en fait il faut que la différence entre le Max et le Min soit supérieure à 1).

    J'espère avoir fait avancer le schmilblick...

    Bon courage,
    Duf

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Points : 97
    Points
    97
    Par défaut
    Merci pour la piste ! J'ai donc changé mon popup menu contre une list box, mais j'arrive pas à m'en servir. J'ai vu que pour fixer le Min à 0 et le Max à 2, je dois utiliser le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ulistbox1 = uicontrol(fh,'Style','listbox',...
        'Position',[350 50 80 170],'Max',2,'Min',0,...
        'String',0:12,...
        'Callback',{@listbox1_callback});
    Je pense pas le mettre au bon endroit, j'ai des erreurs.

    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
    function listbox1_Callback(hObject, eventdata, handles)
    % Hints: contents = get(hObject,'String') returns listbox1 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from listbox1
     
    ulistbox1 = uicontrol(fh,'Style','listbox',...
        'Position',[350 50 80 170],'Max',2,'Min',0,...
        'String',0:12,...
        'Callback',{@listbox1_callback});
     
    val=get(hObject,'Value');
    str=get(hObject,'String');
    switch str{val}
        case 'var 1' %user selects variables
            handles.current_data=1;
        case 'var 2'
            handles.current_data=2;
        case 'var 3'
            handles.current_data=3;
    end
     
    plot(handles.var{handles.current_data});
    guidata(hObject,handles);
    Est-ce que je dois garder mon switch? Et surtout, comment insérer "proprement" cette option me permettant de faire une sélection multiple?
    Merci

  8. #8
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Pour les options Min et Max, tu as plusieurs options:
    - Comme ta figure est générée avec GUIDE, tu peux directement définir les valeurs dans GUIDE (avec l'éditeur de propriété), c'est la solution la plus simple (lorsqu'on utilise le GUIDE évidemment).
    - Sinon dans ton OpeningFcn, tu peux rajouter le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.listbox1, 'Min', 0, 'Max', 2);
    Il faut bien sûr supprimer ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ulistbox1 = uicontrol(fh,'Style','listbox',...
        'Position',[350 50 80 170],'Max',2,'Min',0,...
        'String',0:12,...
        'Callback',{@listbox1_callback});
    Du Callback de ta listbox, cela te recrée une listbox à chaque fois que tu clique dedans...

    Mais dans un premier temps, je crois que tu devrais prendre le temps de lire calmement ceci

    Bon courage,
    Duf

    EDIT: J'ai oublié, pour le switch, pourquoi ne pas remplacer le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    val=get(hObject,'Value');
    str=get(hObject,'String');
    switch str{val}
        case 'var 1' %user selects variables
            handles.current_data=1;
        case 'var 2'
            handles.current_data=2;
        case 'var 3'
            handles.current_data=3;
    end
    Par simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    handles.current_data = get(hObject,'Value');

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Points : 97
    Points
    97
    Par défaut
    Merci encore duf42 ! Ma listebox avance petit à petit, je pense que bientôt, elle marchera
    J'ai lu le lien, c'est bien pour des notions générales, mais j'ai pas trouvé plus d'infos sur les list box.

    Concernant mon problème, quand je sélectionne une variable dans ma liste box en maintenant Ctrl, j'ai l'erreur :
    Error using ==> plot
    Not enough input arguments.

    Error in ==> fisherdiscriminantanalysis>listbox1_Callback at 142
    plot(handles.var{handles.current_data});

    Error in ==> gui_mainfcn at 75
    feval(varargin{:});

    Error in ==> fisherdiscriminantanalysis at 42
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uicontrol Callback.
    Donc je n'ai pas assez d'arguments en entrée. Le problème vient de cette commande il me semble :
    plot(handles.var{handles.current_data});
    Mais si j'utilise pas Ctrl, je peux visualiser chacune des courbes sans aucun problème...Alors, je suis pas sûre que le problème vienne effectivement de
    plot(handles.var{handles.current_data});
    Autre question : Est-ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.listbox1, 'Min', 0, 'Max', 4);
    indique en quelque sorte le nombre de variables que l'on peut sélectionner? par example ici, entre 0 et 4?
    Merci

  10. #10
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Pour tracer plusieurs courbes, je pense que la meilleure méthode (la plus lisible en tous cas) est de faire une simple boucle FOR sur handles.current_data :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i_data = 1:length(handles.current_data)
         plot(handles.var{handles.current_data(i_data)});
    end

    Citation Envoyé par jane40 Voir le message
    Autre question : Est-ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.listbox1, 'Min', 0, 'Max', 4);
    indique en quelque sorte le nombre de variables que l'on peut sélectionner? par example ici, entre 0 et 4?
    Merci
    Non, pour autant que je saches le nombre de sélections possibles dans une listbox est de 1 ou plusieurs mais sans définition du nombre mini ou maxi. Si tu veux limiter à un certain nombre, il faut coder toi même la limitation...

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Points : 97
    Points
    97
    Par défaut
    Merci pour les réponses. Je m'occuperai de la limitation des variables plus tard alors ...
    Si j'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function listbox1_Callback(hObject, eventdata, handles)
    handles.current_data = get(hObject,'Value');
     
    for i_data = 1:length(handles.current_data)
         plot(handles.var{handles.current_data(i_data)},'.');
    end
     
    guidata(hObject,handles);
    je n'ai qu'une seule variable qui s'affiche. Mais au moins, je n'ai plus les erreurs

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

Discussions similaires

  1. [Débutant] Problème données popup menu
    Par Yul56 dans le forum Interfaces Graphiques
    Réponses: 33
    Dernier message: 30/06/2015, 13h49
  2. Popup menu problème de manipulation
    Par Dr walid dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/05/2014, 20h39
  3. problème d'appel entre le popup-menu et un botton
    Par Braiki Mahdi dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 30/04/2010, 08h08
  4. [PageControl] problème avec le popup menu
    Par Rayek dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/02/2006, 15h56
  5. Mettre un popup menu invisible ??
    Par Alberto dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 09h02

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