Is there an alternative for isstrprop to use on non integers?

1 次查看(过去 30 天)
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?

采纳的回答

Walter Roberson
Walter Roberson 2015-12-14
You can use regexp(), but be careful with exponents
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by