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 :

Afficher le nom du fichier chargé dans edit + sélection d'un Axes pour le plot


Sujet :

Interfaces Graphiques

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Afficher le nom du fichier chargé dans edit + sélection d'un Axes pour le plot
    Bonjour,

    J'ai une question sur mon interface graphique. En fait je charge un fichier .txt à l'aide d'un uicontrol après dans mon interface je lance la simulation.
    Mon programme est bien compilé par l'interface.

    Cependant j'ai deux problèmes :

    - Le premier est que je voudrais que le fichier chargé s'affiche dans une fenêtre pour savoir en somme quel fichier j'ai chargé j'utilise le code suivant pour créer ma fenêtre mais le nom du fichier ne s'affiche pas:

    Code pour charger mes données :
    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 chgt_data(obj,evnt)
    handles = guidata(gcbf);
    [nom,rep] = uigetfile('*.xls*;*.txt*');
     
    if nom==0
       return 
    else   
    end
     
    Data = xlsread(fullfile(rep,nom));
    setappdata(gcf,'valeur_de_Data',Data);
    guidata(gcbf,handles)
     
    uicontrol(...
        'Parent',Effort_resistant_traineepanel(1),...
        'style','pushbutton',...
        'units','normalized',...
        'position',[0.05 0.9 0.1 0.05],...
        'string','Charger data',...
        'callback',@chgt_data);
    Code de la fenêtre pour afficher le nom des datas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    uicontrol(...
        'Parent',Effort_resistant_traineepanel(1),...
        'style','Edit',...
        'units','normalized',...
        'position',[0.17 0.9 0.3 0.05],...
        'tag','Chemin_User',...
        'string','',...
        'callback',@chgt_data)
    - mon deuxieme probleme est que une fois la simulation terminée, je dois dabord cliquer sur le graphe avant de cliquer sur le bouton afficher ma courbe, je vois pas d'ou cette erreur peut venir. L'idéal serait de lancer la simulation et d'appuyer sur mon bouton afficher ma courbe u lieu de cliquer dabord sur le graphe.

    Merci pour votre aide.

  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 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
    Pour la première question, ajoute la ligne suivante à la fin de la fonction CHGT_DATA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.Chemin_User,'string',fullfile(rep,nom));
    Pour la seconde question, il nous faudrait voir le code où tu trace les données
    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 à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Merci pour la ligne de code, cela m'affiche bien la direction de mon fichier.
    Pour le code ou je trace sur mon graphe ca donne :

    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 graphe_fres(hObj,Event)
    %Récupération des valeurs
    d1=getappdata(gcbf,'valeur_de_d1');
    Fres1=getappdata(gcbf,'valeur_de_Fres1');
     
    handles = guidata(gcbf);
     
    hplot = get(hObj,'UserData');
    if isempty(hplot)
     
      hplot = plot(d1,Fres1,'b'); %Courbe
      grid on
      hold on
      set(hObj,'UserData',hplot);
    else
      if strcmp(get(hplot,'Visible'),'on'), set(hplot,'Visible','off')
      else set(hplot,'Visible','on')
      end
    end       
    guidata(gcbf,handles)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    En fait pour les graphes , je lance ma simulation et je doit cliquer sur un graphe obligatoirement avant de cliquer sur un bouton afficher courbe. C'est comme si l'interface voulait que je choisisse un endroit ou afficher les courbes et une fois que l'endroit ( en fait le graphe ou je veux voir les courbes) est sélectionné je peux cliquer sur mes bouton afficher courbe et c'est bon.

    Ca doit venir d'une ligne de code ou alors dans une interface il faut toujours choisir un graphe ou afficher les courbes?

  5. #5
    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
    Je ne suis pas certain mais je pense que tu devrais créer un objet Axes juste après la création de la fenêtre dans la fonction principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    figure
    axes('tag','axes','xgrid','on','ygrid','on');
    et ensuite effectuer le tracé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hplot = plot(handles.axes,d1,Fres1,'b'); %Courbe
    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)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par juliematlab Voir le message
    Ca doit venir d'une ligne de code ou alors dans une interface il faut toujours choisir un graphe ou afficher les courbes?
    C'est un peu cela, en fait lorsque tu fais un plot(...) MATLAB fait le tracé dans l'objet Axes courant sélectionné, chose que tu peux faire en cliquant dessus.
    En codant, tu peux le faire de deux façons grâce au handle:
    1. La façon de Dut, en spécifiant le handle de l'Axes en entrée de la fonction plot. L'axe courant n'est alors pas modifié.
    2. Une autre en sélectionnant l'Axes courant où tu veux faire le tracé (chose que tu faisais en cliquant dessus). Tu n'as alors plus à le spécifier dans le plot:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      axes(handles.axes) % sélection de l'Axes
      hplot = plot(d1,Fres1,'b');

Discussions similaires

  1. [XL-2003] afficher le nom du fichier dans une cellule
    Par Philippe76 dans le forum Excel
    Réponses: 4
    Dernier message: 25/04/2019, 10h36
  2. Afficher le nom du fichier uploader dans la vue
    Par AmFaye dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 06/01/2014, 19h00
  3. Afficher le nom de fichiers importés dans une listbox
    Par msmatlab dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 14/06/2013, 16h32
  4. Réponses: 1
    Dernier message: 28/03/2011, 09h30
  5. Réponses: 5
    Dernier message: 08/05/2006, 00h39

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