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 avec GUIDE


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut problème avec GUIDE
    Bonjour,
    J'essaie de créer une interface graphique grâce à l'outil GUIDE.
    Un des boutons que j'ai crée doit lire des valeurs dans une zone de "text edit"
    j'ai donc écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xRa=str2num(get(handles.xRa1,'string'));
    au début le programme fonctionnait correctement mais maintement il m'affiche à chaque fois que j'essaie de le lancer l'erreur suivante:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ??? Attempt to reference field of non-structure array.
     
    Error in ==> hinge>react_Callback at 556
    xRa=str2num(get(handles.xRa1,'string'));
     
    Error in ==> gui_mainfcn at 75
            feval(varargin{:});
     
    Error in ==> hinge at 44
        gui_mainfcn(gui_State, varargin{:});
     
    ??? Error while evaluating uicontrol Callback.
    Je ne comprend pas quel est le problème.

    Quelqu'un pourrait-il m'aider

    Merci

  2. #2
    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 : 41
    Localisation : France

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

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

    Pourrais-tu nous montrer le code complet de la fonction qui pose problème?

    Duf

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut
    Bonjour,

    Le guide que j'essaie de créer concerne la resistance des matériaux.*
    Voila le script correspondant au à la fonction bouton qui me pose problème:

    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 react_Callback(hObject, eventdata, handles)
    % hObject    handle to react (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    xRa=str2num(get(handles.xRa1,'string'));
    xRb=str2num(get(handles.xRb,'string'));
     
    L=str2num(get(handles.L,'string'));
    x1=str2num(get(handles.x1,'string'));x2=str2num(get(handles.x2,'string'));x3=str2num(get(handles.x3,'string'));xb1=str2num(get(handles.xb1,'string'));xe1=str2num(get(handles.xe1,'string'));xb2=str2num(get(handles.xb2,'string'));xe2=str2num(get(handles.xe2,'string'));xk1=str2num(get(handles.xk1,'string'));
     
    F1=str2num(get(handles.F1,'string'));F2=str2num(get(handles.F2,'string'));F3=str2num(get(handles.F3,'string'));K1=str2num(get(handles.K1,'string'));u1=str2num(get(handles.u1,'string'));u2=str2num(get(handles.u2,'string'));m1=str2num(get(handles.m1,'string'));m2=str2num(get(handles.m2,'string'));
    n=10*L+1; x=linspace(0,L,n);
     
    sketchhinge;
     
    set(handles.Ra,'string',Ra)
    set(handles.Rb,'string',Rb)
    set(handles.Ma,'string',Ma)
    Le programme auquel je fais appel est le suivant:

    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
     
    %this program is used to evaluate reaction force in hinged beam problem
    syms Ra Rb Ma
    %principle of statics
    T1=Ra+Rb-F1-F2-F3-u1*(xe1-xb1);
    Rb=solve(T1,Rb);
    %Second bordary conditions;, M(L)=0
    Ta=Ra*maccaulay(L,1)+Rb*maccaulay(L-xRb,1)+Ma*maccaulay(L,0)-F1*maccaulay((L-x1),1)-(u1/2)*maccaulay((L-xb1),2)+ (u2/2)*maccaulay((L-xe1),2)-(u2-u1)/(6*(div(xe1,xb1)))*maccaulay((L-xb1),3)+ (u2-u1)/(6*(div(xe1,xb1)))*maccaulay((L-xe1),3)+K1*maccaulay((L-xk1),0)+m1*maccaulay((L-xb2),1)-m2*maccaulay((L-xe2),1)+(m2-m1)/(2*(div(xe2,xb2)))*maccaulay((L-xb2),2)- (m2-m1)/(2*(div(xe2,xb2)))*maccaulay((L-xe2),2)-F2*maccaulay((L-x2),1)- F3*maccaulay((L-x3),1);
    Ra=(solve(Ta,Ra));
     
    % %Calculation of Bending moment
     for i=1:1:n
    M(i)=Ra*maccaulay(x(i),1)+Rb*maccaulay(x(i)-xRb,1)+Ma*maccaulay(x(i),0)-F1*maccaulay((x(i)-x1),1)-(u1/2)*maccaulay((x(i)-xb1),2)+(u2/2)*maccaulay((x(i)-xe1),2)-(u2-u1)/(6*(div(xe1,xb1)))*maccaulay((x(i)-xb1),3)+(u2-u1)/(6*(div(xe1,xb1)))*maccaulay((x(i)-xe1),3)+K1*maccaulay((x(i)-xk1),0)+m1*maccaulay((x(i)-xb2),1)-m2*maccaulay((x(i)-xe2),1)+(m2-m1)/(2*(div(xe2,xb2)))*maccaulay((x(i)-xb2),2)- (m2-m1)/(2*(div(xe2,xb2)))*maccaulay((x(i)-xe2),2)-F2*maccaulay((x(i)-x2),1)- F3*maccaulay((x(i)-x3),1);
     end
     
    %deflection
     syms C1 C2
    for i=1:1:n
    W(i)=(Ra/2)*maccaulay(x(i),2)+(Rb/2)*maccaulay(x(i)-xRb,2)+(Ma)*maccaulay(x(i),1)-(F1/2)*maccaulay((x(i)-x1),2)-(u1/6)*maccaulay((x(i)-xb1),3)+ (u2/6)*maccaulay((x(i)-xe1),3)-(u2-u1)/(24*(div(xe1,xb1)))*maccaulay((x(i)-xb1),4)+ (u2-u1)/(24*(div(xe1,xb1)))*maccaulay((x(i)-xe1),4)+(K1)*maccaulay((x(i)-xk1),1)+(m1/2)*maccaulay((x(i)-xb2),2)-(m2/2)*maccaulay((x(i)-xe2),2)+(m2-m1)/(6*(div(xe2,xb2)))*maccaulay((x(i)-xb2),3)- (m2-m1)/(6*(div(xe2,xb2)))*maccaulay((x(i)-xe2),3)-(F2/2)*maccaulay((x(i)-x2),2)- (F3/2)*maccaulay((x(i)-x3),2)+C1;
    end
    Le problème est donc qu'il affiche une erreur comme si il ne pouvait pas lire les champs de texte.
    Voilà j'esppère que ce n'est pas trop ilisible et que tu pourras m'aider.
    Merci d'avance

  4. #4
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    vérifie ce que vaut ta variable handles en mettant un breakpoint à la première ligne de react_Callback

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut
    En fait lorsque je met un breakpoint sur la première ligne de ma fonction, la variable handles est vide.

    La chose vraiment bizarre est que lorsque j'ouvre d'abord le fichier GUIDE .fig,
    j'obtient l'erreur,
    par contre si j'ouvre d'abord le script .m du GUIDE et que je le charge , et que je fais marcher ensuite l'interface, et bien ça fonctionne.

    Il s'agit surement d'un truc tout bête, mais comme j'ai besoin que le programme fonctionne directement en lançant l'interface pour être utiliser par des personnes qui ne connaissent pas forcement Matlab, c'est assez ennuyeux.

  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 : 41
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Ok,

    En fait une interface ne se lance jamais à partir du .FIG mais toujours à partir du .M.

    Pour simplifier un peu, le .FIG peut être considérer comme un fichier de données (comme un MAT), il ne contient que les données relatives à l'interface (position des objets et autres propriétés) et n'est pas conçu pour être lancé tout seul.

  7. #7
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    Donc mon test valait le coup, la variable handles étant la cause du problème.
    Maintenant il faut lancer le gui en invoquant le nom sans extension comme expliqué ici (avec ton message d'erreur )

    Why can't I launch my GUI with a listbox directly by opening the .fig file?

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

Discussions similaires

  1. Problème de variables et GUI avec GUIDE
    Par drfell dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 21/05/2009, 16h40
  2. Réponses: 14
    Dernier message: 06/03/2006, 15h35
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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