Is there an alternative for isstrprop to use on non integers?
1 view (last 30 days)
Show older comments
Rodmehr Semnani
on 14 Dec 2015
Commented: Rodmehr Semnani
on 19 Jan 2016
I've set up a GUI (without Guide) that first one must input parameters, and then a plot will show data. Problem is, I'm trying to find a way to check the parameters before I allow the UI to run. These parameters must be real numbers greater than 0. Using the isstrprop command works fine for positive integers, but it doesn't work when say I want to input a parameter for example 0.5 Hz.
Inside a button callback, I've inserted the following code:
try
if isstrprop(paedit.String,'digit')==1 && isstrprop(rtedit.String,'digit')==1 && isstrprop(siedit.String,'digit')==1
% accept parameters and display run button
accbtn.Visible='off';
accbtn.Enable='off';
runbtn.Visible='on';
stopbtn.Visible='on';
runbtn.Enable='on';
rtedit.Enable='off';
paedit.Enable='off';
siedit.Enable='off';
else
msgbox('Please enter a valid parameters','Input Error','error','modal');
end
catch
msgbox('Please enter a valid parameters','Input Error','error','modal');
end
This code makes sure that if a letter or a negative value is entered into one of the parameter edit boxes, it will not continue. It doesn't, however, let me do non integers. Is there a way to get around that with isstrprop or another command?
0 Comments
Accepted Answer
Walter Roberson
on 14 Dec 2015
Really the easiest way is to use
tmp = str2double(paedit.String);
if ~isnan(tmp)
% accept parameters and display run button
accbtn.Visible='off';
accbtn.Enable='off';
runbtn.Visible='on';
stopbtn.Visible='on';
runbtn.Enable='on';
rtedit.Enable='off';
paedit.Enable='off';
siedit.Enable='off';
else
msgbox('Please enter a valid parameters','Input Error','error','modal');
end
No try/catch should be needed
More Answers (0)
See Also
Categories
Find more on Environment and Settings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!