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 :

clear workspace


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut clear workspace
    Bonjour,
    Je voudrais supprimer certaines variables du workspace par une action d'un bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    clear(strcat(char(fileName),'*'))
    ne marche pas!

    même:
    En utilisant un , je sais que la ligne s'est exécutée, mais sans action!

    Pourquoi?

  2. #2
    Membre averti Avatar de pwfsic
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 56
    Par défaut
    Pourrais tu montrer le bout de code où tu utilises la commande clear ? (= le callback des boutons)

  3. #3
    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
    Citation Envoyé par ancrou
    Bonjour,
    Je voudrais supprimer certaines variables du workspace par une action d'un bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    a=3
    uicontrol('Style','PushButton','callback','clear all')
    whos
    tu as une variable a, puis un bouton sur lequel tu appuies dessus et qui efface tes variables du workspace , la sortie de whos le confirme!

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut
    Donc je reprends du début:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    fonction pushbuttonRemove_Callback(hObject,eventdata,handles)
    rowData=get(handles.listboxData,'Value');
    listBoxData=get(handles.listboxData,'String');
    fileName=char(listBoxData(rowData));
     
    lengthData=length(listBoxData);
     
    %Clear des varibles du workspace
    clear(strcat(char(fileName),'*'))
     
    %apres il y une suite !!
    Voila mon code du début

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    a=3
    uicontrol('Style','PushButton','callback','clear all')
    whos
    tu as une variable a, puis un bouton sur lequel tu appuies dessus et qui efface tes variables du workspace , la sortie de whos le confirme!
    Merci tug83 pour ta proposition, mais un whos avant cette ligne puis un après; donne la même réponse! Rien n'est effacé

    Le workspace de la commande whos et le workspace de l'onglet de Matlab. Sont différents ! Normal?

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut variable extérieur
    J'ai trouvé sur Internet une explication au whos qui ne donne pas le même résultat:
    les variables à l’intérieur d’un fichier function ne sont pas disponibles à l’extérieur, elles ne sont visibles que dans leurs propres espace de travail.
    Donc, si je comprends bien:
    le workspace browser, affiche les variables extérieurs
    le whos exécuté dans une fonction, affiche les variables internes à la fonction.


    Pour résoudre mon problème de base:
    Il me faut effacer des variables qu'ils sont à l'extérieur de la fonction.


  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    C'est un peu plus compliqué ici... seul CLEAR ALL aura un effet sur le workspace de Matlab à l'intérieur d'une fonction.

    Il faut ici utiliser EVALIN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fonction pushbuttonRemove_Callback(hObject,eventdata,handles)
    rowData=get(handles.listboxData,'Value');
    listBoxData=get(handles.listboxData,'String');
    fileName=listBoxData(rowData);
    fileName{1}(end+1)='*';
     
    evalin('base',['clear ' fileName]);
    Enfin... c'est l'idée... il y a peut être mieux et plus propre... en même temps, je ne vois pas pourquoi il est nécessaire de nettoyer le workspace de Matlab depuis une fonction ? Il faudrait peut être revoir l'algorithme...

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut
    Merci de votre aide, mais j'ai toujours une problème

    Avec le code proposé par Dut, j'ai le message d'erreur suivant:
    ??? Function 'evalin' is not defined for values of class 'cell'.

    Error in ==> gui>pushbuttonRemove_Callback at 176
    evalin('base',['clear ' fileName])

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

    Error in ==> gui at 43
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uicontrol Callback.
    Je ne suis pas arrivé à le "débuger"

    Pour l'algo
    Le mieux est d'avoir l'équivalent d'un JavaBean
    J'ai un bonton qui m'extrait des données et les stocke en variable dans le workspace par assignin('base'...
    Et un autre bouton (par cette fonction) pour supprimer certaines données.
    Donc j'aimerais avoir un code "propre", mais c'est un tous autre problème!

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

Discussions similaires

  1. [Plugin] Récupérer tous les fichiers *.java d'un workspace
    Par Satch dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 02/06/2004, 12h51
  2. [Info]Partage de workspace??
    Par Sim dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 19/05/2004, 20h48
  3. [config] workspace par defaut ?
    Par baert dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/02/2004, 12h59
  4. [WORKSPACE]
    Par xa1 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 06/10/2003, 15h50
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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