Number and alphabet
Afficher commentaires plus anciens
Hi,
I have edittext and pushbutton.
If I write with "sym(' ')" for example a1 or R2 or alfa34...matlab works good. If I write any text in this format a1 into edittext, then I want to enable pushbutton.
But if the firts is number for example 1a or 45R or 89gama, then matlab generate error. So if I write any text in this format 2a into edittext, then I want to disable pushbutton.
Please, how Can I do this?
Thank you
3 commentaires
Oleg Komarov
le 7 Mai 2012
You cannot create variables which start from a number. This is a naming convention for variables and functions.
john
le 7 Mai 2012
John D'Errico
le 7 Mai 2012
Use a regular expression to test for this event.
Réponses (1)
Titus Edelhofer
le 7 Mai 2012
Hi,
you can use isvarname for this purpose, something like
str = get(handles.edit1, 'string');
if isvarname(str))
set(handles.pushbutton1, 'enable', 'on')
else
set(handles.pushbutton1, 'enable', 'off')
end
Titus
9 commentaires
john
le 7 Mai 2012
Oleg Komarov
le 7 Mai 2012
isvarname does that, try Titus' solution.
john
le 7 Mai 2012
john
le 7 Mai 2012
Titus Edelhofer
le 7 Mai 2012
Hi,
do I understand right: "only a number" should enable as well, although it's not a variable name? Then change the if to
if isvarname(str) || ~isnan(str2double(str))
Titus
Walter Roberson
le 7 Mai 2012
Should only non-negative integers be allowed like 53, or should negatives be allowed? Floating point numbers? Exponential format? Titus's use of str2double() will allow numbers in all formats, including -3.83456e-009
john
le 8 Mai 2012
john
le 17 Mai 2012
Walter Roberson
le 17 Mai 2012
What difficulties are you encountering?
Catégories
En savoir plus sur Entering Commands dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!