How to lock an enter field for an area of numbers and no letters.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentar
per isakson
am 11 Dez. 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.
Antworten (2)
Isabella Osetinsky-Tzidaki
am 11 Dez. 2016
if (x>10 || x<1)
error('User can only enter numbers between 1-10')
end
2 Kommentare
Star Strider
am 11 Dez. 2016
Bearbeitet: Star Strider
am 12 Dez. 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')
return
else
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!')
else
errordlg(sprintf('Input must be a number between %.1f and %.1f ', nr_lims),'Input Error')
return
end
end
2 Kommentare
Siehe auch
Kategorien
Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!