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 :

[inputdlg] Comment filtrer une valeur entrée par l'utilisateur


Sujet :

MATLAB

  1. #1
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut [inputdlg] Comment filtrer une valeur entrée par l'utilisateur
    bien le bonjour, d'abord desoler pour le titre si il n'est pas claire, donc ce que je veux c'est que via mon interface on entre une valeur comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    y = inputdlg('Donner un nombre de classes compris entre 1 et 12')
    s=str2num(y{1})
    mais je veux que si cette valeur n'est pas entier et n'est pas comprise entre 1 et 12 un signal d'erreur s'affiche et le message demendant d'entré une valeur se reaffiche merci
    Matlab 7.0 (R14) ...

  2. #2
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    j'ai fait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    s=0;
    while ((s<1)|(s>12))
    y = inputdlg('Donner un nombre de classes compris entre 1 et 12')
    s=str2num(y{1})
    end;
    ca a l'aire de marcher si vous avez une meilleur idé
    Matlab 7.0 (R14) ...

  3. #3
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Faut faire une boucle while
    une méthode :
    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
     
     
    while 1
    y = inputdlg('Donner un nombre de classes compris entre 1 et 12');
    res=str2num(y{1});
    if ~isempty(res) %res est bien un nombre
       if 1<res && res<12
          %cool l'utilisateur a bien rentré une bonne valeur
          break %donc je sors du while
       end
    end
    %si j'arrive là c'est que l'utilisateur n'a pas bien répondu on lui met un petit message
    h=warndlg('Faudrait lire la question !!');
    waitfor(h)
    end
    Règles du Forum

    Adepte de la maïeutique

  4. #4
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    C'était déjà pas mal mais tu ne vérifies pas que c'est un nombre.
    Et puis tu disais aussi que tu voulais un entier donc il y a un test a rajouter...
    Du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if res==round(res)
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    while 1
    y = inputdlg('Donner un nombre de classes compris entre 1 et 12');
    res=str2num(y{1});
    if ~isempty(res) %res est bien un nombre
       if 1<res && res<12  && res==round(res)
          %cool l'utilisateur a bien rentré une bonne valeur
          break %donc je sors du while
       end
    end
    %si j'arrive là c'est que l'utilisateur n'a pas bien répondu on lui met un petit message
    h=warndlg('Faudrait lire la question !!');
    waitfor(h)
    end

    caro encore une fois tu vien a mon aide
    Matlab 7.0 (R14) ...

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

Discussions similaires

  1. Récupérer une valeur entrée par un utilisateur
    Par phyfab dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 10/12/2013, 12h03
  2. Réponses: 4
    Dernier message: 26/07/2011, 17h52
  3. Réponses: 11
    Dernier message: 08/12/2010, 09h48
  4. Réponses: 1
    Dernier message: 19/02/2009, 11h15
  5. requête access (test d'une valeur entrée par l'utilisateur)
    Par ben5985 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 30/11/2006, 08h39

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