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 :

Afficher la liste de fichier.m dans un dossier et les placés dans un menu pop-up


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut Afficher la liste de fichier.m dans un dossier et les placés dans un menu pop-up
    Bonjour à tous ,

    Fraîchement inscris sur votre forum pour des raisons que je vais indiquer très rapidement:

    Je suis chargé de programmé une interface et dans un cadre particulier je me vois en présence d'un popup menu de sélection et un second menu(popup) qui est lié par le programme.

    Je n'ai eu aucun soucis pour faire des liaisons entre ceux-ci mais, ici je souhaite sur mon second menu faire apparaître les fichiers.m contenu dans un dossier précis , et pouvoir ensuite les sélectionner (les afficher à la sélection), j'ai arpenté

    toute la journée votre forum et tous les sites possibles ainsi que l'aide MATLAB.


    Merci cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir, et bienvenue

    Tu peux commencer par regarder le sujet Comment lister les fichiers d'une certaine extension dans un répertoire ? de la FAQ.
    Il suffira alors de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handle_de_ton_popup, 'String', {list.name})

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Alors j'ai essayé votre méthode cela me semblait pas mal mais je me retrouve avec des erreurs.

    J'ai essaye de rentrer la méthode dans une fonction appelé par un CALLBACK du popup menu précédent : et j'obtiens une érreur :


    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
    ??? No appropriate method, property, or field modele_1 for class handle.
     
    Error in ==> fonction_moteur1 at 20
    set(handle.modele_1, 'String', {list.name})
     
    Error in ==> Modele1>Type_1_Callback at 158
    fonction_moteur1(handles)
     
    Error in ==> gui_mainfcn at 96
            feval(varargin{:});
     
    Error in ==> Modele1 at 42
        gui_mainfcn(gui_State, varargin{:});
     
    Error in ==> @(hObject,eventdata)Modele1('Type_1_Callback',hObject,eventdata,guidata(hObject))
     
     
    ??? Error while evaluating uicontrol Callback

    Voilà l'endroit ou je pensais le mettre :


    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
    function fonction_moteur1(handles)
     
    val = get(handles.Type_1,'Value');
    str = get(handles.Type_1,'String'); 
     
    switch str{val};
     
     
                        case 'Electrique'
     
     set(handles.modele_1,'Enable','on')
     set(handles.type1,'Enable','on')
     set(handles.modele1,'Enable','on')
     
     
    rep = '.\modele\electrique';
    ext = '*.m';
    chemin1 = fullfile(rep,ext);
    list = dir(chemin1);
    set(handle.modele_1, 'String', {list.name})
     
     
    set(handles.type1,'string',{'Pont','Bout Essieu','Moteur Roue'});

  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 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 : 52 882
    Points
    52 882
    Par défaut
    Attention :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.modele_1, 'String', {'list.name'})
    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 à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Je suis confus .... une erreur pitoyable

    ça fonctionne

    Merci cordialement

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Petite chose , sauriez vous comment faire pour lancer le fichier que je sélectionne ? sans utiliser un switch ? car des fichiers seront rajouter au fur et à mesure dans le dossier pour éviter de rajouter des cases si j'utilisais un switch.

    merci

  7. #7
    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 : 52 882
    Points
    52 882
    Par défaut
    Si ce sont des scripts, tu peux utiliser run

    Si ce sont des fonctions, tu peux utiliser evalin
    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)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Ce sont des fichiers scripts ( pas de fonction ) uniquement des variables.
    J'utilisais cette méthode :

    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
    switch str{val};
     
        case 'ME_1.m'   
         ME_1
         save ME_1.mat;  
     
        case 'ME_2.m'
     
         ME_2
         save ME_2.mat; 
     
        case 'MTH_1.m' 
            MTH_1
            save MTH_1.mat; 
     
     
        case 'MTH_2.m'  
            MTH_2
            save MTH_2.mat
    ;


    Ce que je n'arrive pas c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function fonction_modele_m1(handles)
     
     val = get(handles.modele_1,'Value')
     str = get(handles.modele_1,'String')
    De crée le code pour lancer l'éléments sélectionner :

    peut être par : str(val) ? mais c'est une chaine de caractère ...

    le lancement ne me pose pas de soucis c'est le code qui permet lors de la sélection du fichier qui fut afficher de le lancer :

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    trouve string ...
    selectionne string.m
    lance le fichier
    sauvegarde .mat

  9. #9
    Invité
    Invité(e)
    Par défaut
    Avec des accolades : fichier = str{val};.
    À partir de là, si le dossier qui contient le fichiers n'est pas situé dans le PATH de MATLAB, il vaut mieux reformer le chemin à partir du répertoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rep = '.\modele\electrique';
    chemin_complet = fullfile(rep, fichier);
    Puis l'exécuter :
    Pour effectuer la sauvegarde, il suffit de concaténer 'at' à la fin du nom du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier_mat = [fichier 'at'];
    Puis d'utiliser la syntaxe fonctionnelle (en ajoutant éventuellement le chemin rep avec fullfile(rep,fichier_mat) selon l'endroit où tu souhaites placer tes .mat) :

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Points : 23
    Points
    23
    Par défaut
    Parfait , ça fonctionne parfaitement

    Merci beaucoup

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

Discussions similaires

  1. [Python 3.X] [Tkinter] Afficher la liste des fichiers d'un dossier dans une fenêtre.
    Par niduab dans le forum Tkinter
    Réponses: 20
    Dernier message: 26/08/2014, 18h37
  2. Afficher une liste de fichiers dans Excel
    Par EmmaZL dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2007, 19h41
  3. [Débutant] Afficher une liste de fichiers dans un ListBox
    Par Zwblirgx dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 03/10/2007, 09h47
  4. [Débutant] Afficher une liste de fichier dans un popupmenu
    Par Maickeul dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 17/07/2007, 09h46
  5. Recheche commande AWK pour afficher une liste de fichiers
    Par Krispy dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 21/07/2006, 11h36

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