MATLAB Answers

How to lock an enter field for an area of numbers and no letters.

3 views (last 30 days)
Bianca Brusis
Bianca Brusis on 11 Dec 2016
Commented: Star Strider on 12 Dec 2016
Hello all, my question is how i can lock an area of numbers in the enter field which the user can only enter. Like i want that the user can only enter numbers in this field between for example 1-10 and only positivenumbers an no letters. Every ohter input should generate an error. :) Thank you.
  1 Comment
per isakson
per isakson on 11 Dec 2016
With GUIDE that feature doesn't exist. The uicontrol outputs a character string and some code is needed to convert to numerical and test the value.
In R2016a (or b) App Designer the feature exists - I think.

Sign in to comment.

Answers (2)

Isabella Osetinsky-Tzidaki
if (x>10 || x<1)
error('User can only enter numbers between 1-10')

Sign in to comment.

Star Strider
Star Strider on 11 Dec 2016
Edited: Star Strider on 12 Dec 2016
EDIT Changed to reflect different decimal separators. Now supports comma (,) and point (.) decimal separators. Checks for alphabetic inputs and for out-of-range numbers.
Try this:
nr_lims = [0 10]; % Number Limits
ltrs = sprintfc('%c', ['A':'Z' 'a':'z']); % Letters Array
respcell = inputdlg(sprintf('Enter a number between %.1f and %.1f ', nr_lims));
resp = respcell{:};
if (any(ismember(resp,ltrs)))
errordlg(sprintf('Input must be a number between %.1f and %.1f ', nr_lims),'Input Error')
parsenum = regexprep(resp, {'\.|\,'}, '.'); % Replace ‘,’ With ‘.’ In Number
num = str2num(parsenum); % Convert String To Double
if (num >= nr_lims(1)) && (num <= nr_lims(2)) % Check For Out-Of-Range
msgbox(sprintf('Your number is %f', num), 'Success!')
errordlg(sprintf('Input must be a number between %.1f and %.1f ', nr_lims),'Input Error')

Community Treasure Hunt

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

Start Hunting!

Translated by