MATLAB – Autoriser uniquement la saisie numérique à l’aide de la gestion des exceptions [fermé]

Rrz0

MATLAB – Autoriser uniquement la saisie numérique à l’aide de la gestion des exceptions [fermé]


J’essaie de gérer les exceptions avec élégance de telle sorte que lorsqu’un utilisateur entre un caractère, lorsqu’un nombre est attendu, il est averti par un avertissement / message personnalisé.

Je sais que le try, catch a la syntaxe suivante:

 try statements catch exception statements end 

J’ai essayé quelque chose comme ça, en vain:

 number = input('Enter number'); try assert(isnumeric(number)); catch ME warning('NOT A NUMBER'); end 

Je ne comprends pas pourquoi le code ci-dessus échoue, car affirmer s’il est faux, affiche le message d’erreur «Échec de l’assertion».

Je sais que l’utilisation de try and catch est un peu une approche de marteau, mais je voudrais comprendre comment implémenter la fonctionnalité ci-dessus. Des conseils seraient appréciés.

Le photon

Je vote pour fermer cette question comme hors sujet car c’est une question de programmation sans application spécifique en électronique.

laptop2d

Une meilleure façon serait d’utiliser number (number == isnan (number)) = 0; ou une autre valeur réelle qui définirait tous les nombres du vecteur qui sont NaN à 0

Réponses


 JonRB

parce que l’assertion nécessite un message utilisateur lorsque l’assertion se produit ALORS le try / catch fonctionnera

Vous voulez quelque chose comme ça:

 a = 'a'; try assert(isnumeric(a),'Not a number AAAA'); catch foo warning('Not a number'); end 1+1 

Comme vous pouvez le voir, le message d’assertion est pris et l’utilisateur AVERTISSEMENT s’affiche.

Alternativement, vous pouvez utiliser une fonction qui échouera sur un numéro différent pour supprimer le besoin d’assert.

 a = 'a'; try mustBeNumeric(a) catch foo warning('Not a number'); end 1+1 

 

-, [fermé], #à, #de, #la, Autoriser, des, exceptions, gestion, l’aide, Matlab, numérique, saisie, uniquement

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *