Number and alphabet

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 Comments

You cannot create variables which start from a number. This is a naming convention for variables and functions.
john
john on 7 May 2012
Yes, I understand...but I need avoid, that somebody will insert variables which start from a number.
Use a regular expression to test for this event.

Sign in to comment.

Answers (1)

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 Comments

john
john on 7 May 2012
and also I need...If I write only number or a1 or R55, then enable pushbutton.
It is possible?
isvarname does that, try Titus' solution.
john
john on 7 May 2012
Sorry guys,
but if I write number for example 53, pushbutton is not enabled....I think it is not working..
john
john on 7 May 2012
where can be a problem? :(
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
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
john on 8 May 2012
Titus, yes only number or string in form "R43" or "beta9".
Walter, only positive floating point numbers without zero....maybe it can be used
if any(regexp(char(get(handles.edit1,'String')),'[^1-9.]'))
set(handles.pushbutton1,'enable','off');
else
set(handles.pushbutton1,'enable','on');
john
john on 17 May 2012
I think, that command "~isvarname(string) || isnan(str2double(string))" doesn't work. Do you have any Idea?
,
,
if ~isvarname(string) || isnan(str2double(string))
set(handles.pushbutton1,'enable','off');
else
set(handles.pushbutton1,'enable','on');
end;
What difficulties are you encountering?

Sign in to comment.

Categories

Asked:

on 7 May 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!