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 :

GUI Save [Débutant]


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 147
    Par défaut GUI Save
    bonjour,

    j'ai fait pour la première fois une interface graphique depuis matlab à l'aide de guide.
    J'ai réaliser un menu où on peut sauver les données du programme.
    Je voudrais sauver une variable définie dans une fonction au moyen d'un bouton de mon menu mais je n'arrive pas. Je sais pas trop comment faire. Je n'arrive pas avec les handles.
    La variable est créée quan on appuye sur un bouton ON et est donc définie dans une fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function varargout = ON_button_Callback(hObject, eventdata, handles, varargin)
    Et je voudrais faire le "save" dans une fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function varargout = Save_data_menu_Callback(hObject, eventdata, handles, varargin)
    Voici mon erreur:

    ??? Reference to non-existent field 'ind_begin'.

    Error in ==> Final>Save_data_menu_Callback at 379
    Indbegin = (handles.ind_begin).*((Time+1)/nbframe);

    Error in ==> <a href="error:C:\MATLAB7\toolbox\matlab\uitools\gui_mainfcn.m,75,1">gui_mainfcn at 75</a>
    feval(varargin{:});

    Error in ==> Final at 44
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uimenu Callback.
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    As-tu bien penser à mettre à jour ta structure handles lorsque tu lui as rajouté le champ ind_begin ?
    Tu devrais avoir quelquepart :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    handles.ind_begin =<ta_valeur>
    %Update handles structure
    guidata(hObject,handles);

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Par défaut
    Bonjour;
    Pour que tu puisse enregistrer tes variables tus peux utiliser la fonction save dans un fichier. Tu peux par la suite charger tes varibles par la fonction load.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    %Enregistrement des variables
    save ton_fichier.mat ta_var1 ta_var2;
    %Chargement des variables
    Load ton_fichier;
    %Pour connaitre le contenu de ton fichier tu fais suivre l'instruction load 
    %ton_fichier; par l'instruction whos;

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 147
    Par défaut
    caro95470,j'ai essayé ce que tu m'as dis mais ca n'a rien changé.
    C'est comme si il ne reconnaissait plus cette variable dans une autre fonction...

  5. #5
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Pourrais-tu mettre le code de tes 2 sous-fonctions ON_button_Callback et Save_data_menu_Callback ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 147
    Par défaut
    bien sur, voici un extrait de la première fonction qui est vraiment longue:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    function varargout = ON_button_Callback(hObject, eventdata, handles, varargin)
     
    % ...il y a du code avant que je n'ai pas mis ici
     
    begin=0;
    leaving=0;
    ib=1;
    il=1;
    ie=1;
    ind_begin=0;
    ind_leaving=0;
    ind_ending=0;
    count=0;
    Tu=0.2;
    Tl=-0.38;
    for l=1:length(F)
        if (begin==0 & F(l)>=Tu)
            begin=1;
            leaving=0;
            ind_begin(ib)=l-2;
            ib=ib+1;
        end  
        if (leaving==0 & begin==1 & F(l)<=Tl)
            leaving=1;
            begin=0;
            ind_leaving(il)=l;
            il=il+1;
        end  
        if (leaving==1 & F(l)<Tl)
            count=0;
        end  
        if (leaving==1 & F(l)>=Tl & count < 20)
            count=count+1;
        elseif (leaving==1 & F(l)>=Tl & count==20)
            leaving=0;
            ind_ending(ie)=l;
            ie=ie+1;
        end 
    end
     
    set(handles.Begin_label,'String',num2str(ind_begin.*((Time+1)/nbframe)));
    set(handles.Leaving_label,'String',num2str(ind_leaving.*((Time+1)/nbframe)));
    set(handles.Ending_label,'String',num2str(ind_ending.*((Time+1)/nbframe)));
     
    handles.ind_begin = ind_begin;
    handles.ind_leaving = ind_leaving;
    handles.ind_ending = ind_ending;
     
    %Update handles structure
    guidata(hObject,handles);
     
    %...et sa continue après...
    Puis, la deuxième fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function varargout = Save_data_menu_Callback(hObject, eventdata, handles, varargin)
    % hObject    handle to Save_data_menu (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    Indbegin = (handles.ind_begin).*((Time+1)/nbframe);
    Indleaving = (handles.ind_leaving).*((Time+1)/nbframe);
    Indending = (handles.ind_ending).*((Time+1)/nbframe);
    save Data_Endpoint Indbegin Indleaving Indending
    Voilà c'est tout

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

Discussions similaires

  1. bouton save matlab gui
    Par shayma92 dans le forum Images
    Réponses: 3
    Dernier message: 16/05/2013, 19h51
  2. [GUI] Ou trouver les standard ?
    Par Braim dans le forum Windows
    Réponses: 5
    Dernier message: 01/10/2003, 08h13
  3. JBuilder 7 personnal sort à chaque save
    Par Hannouz dans le forum JBuilder
    Réponses: 4
    Dernier message: 17/12/2002, 22h53
  4. [VB6] [Graphisme] Dimensions d'une image au saving
    Par jeanseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/12/2002, 19h09
  5. Algo carry save adder
    Par bashou dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 18/10/2002, 11h32

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