Is there an alternative for isstrprop to use on non integers?
    2 views (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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
