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 :

Problème au niveau des commandes 'case' et 'switch'


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 71
    Par défaut Problème au niveau des commandes 'case' et 'switch'
    bonjour,

    dans mon interface j'utilise un pop up menu.Ce pop up menu me permet de selectionner parmis plusieurs variables. Voici le code associé qui me permet de seléctionner ces variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    str=get(hObject,'String')
    val=get(hObject,'Value')
     
    switch str{val}
     
    case 'Aux'
    handles.current_data=handles.tagtrigIHM_001;
    TrigState='aux'
     
    case 'sw1'
    handles.current_data=handles.tagtrigIHM_001;
    TrigState='sw1'
    Le problème, c'est que dans mon workspace,à la place d'avoir la variable TrigState avec la valeur 'aux' ou 'sw1' j'ai une valeur=<3X1 char>.

    Je me suis aprecu que cela correspond au nombre de lettre dans mon string.
    Comment je peu faire pour avoir la valeur correct dans mon workspace???

    si cela peut vous aider:
    Si par exemple j'ai selectionné la valeur 'Aux' dan mon popup menu, Dans le workspace j'ai donc comme valeur pour le TrigState <3X1 char>. Lorsque que je fais clique droit sur la variable TrigState dans le workspace et que je clique sur "open selection",j'ai donc le array editor qui s'ouvre et je peux lire:
    TrigState=

    a
    u
    x
    Savez vous comment faire pour résoudre mon probleme?je vous remercie d'avance..

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Par défaut
    De ce que je sais, ce n'est pas comme ca qu'il faut faire, mais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    toto=get(hobject,'Value');
    if toto==1
        %sélection de ton 1 choix dans ton pop up, donc code là
    elseif toto==2
        %etc...
    end

  3. #3
    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
    Si, on peut faire le switch/case sur la propriété string, ça marche plutôt bien (sauf doublons).

    Ton problème est vraiment bizarre.
    en fait pour avoir ce que tu dis il faudrait avoir défini Trigstate comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TrigState={['a';'u';'x']}
    Dans ce cas on a bien :
    >> TrigState

    TrigState =

    [3x1 char]
    Donc il y a un moment dans ton code où tu fais autre chose que simplement :
    Comment envoies-tu (ou récupères-tu) la donnée vers le workspace ?

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 71
    Par défaut
    Pour envoyer ma donnée vers le workspace, j'utilise la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    assignin('base','TrigState',Trigstate)
    et également la commande setappdata car j'utilise la variable dans d'autre programme et je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setappdata(0,'TrigState',TrigState)

  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


    Bon peux-tu faire une recherche dans ton (ou tes) fichiers de tous les endroits où tu fais Il n'est pas possible avec la portion de code que tu as envoyée d'avoir le résultat que tu as, il y a forcément un loup caché quelquepart.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 71
    Par défaut
    ne ne l'utilise dans aucun autre programme.
    Mais je vais pas m'embété je vais changer le pop up menu par des radio button.......

Discussions similaires

  1. [Eclipse CDT]problème au niveau des include
    Par snoop dans le forum Eclipse C & C++
    Réponses: 6
    Dernier message: 05/04/2009, 14h57
  2. [LDAP] Problème au niveau des accents une interface PHP
    Par Manuxy dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/04/2007, 11h16
  3. [phpMyAdmin] problème au niveau des heures avec phpMyAdmin
    Par arti2004 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 13/06/2006, 22h05
  4. [Client FTP][C++] Problème au niveau des commandes
    Par agent007se dans le forum Développement
    Réponses: 4
    Dernier message: 19/04/2006, 15h15
  5. [RCP] Problème au niveau des icones des executables
    Par albeau dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/03/2006, 16h24

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