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

조회 수: 1 (최근 30일)
Bianca Brusis
Bianca Brusis 2016년 12월 11일
댓글: Star Strider 2016년 12월 12일
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
per isakson
per isakson 2016년 12월 11일
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.

댓글을 달려면 로그인하십시오.

답변 (2개)

Isabella Osetinsky-Tzidaki
Isabella Osetinsky-Tzidaki 2016년 12월 11일
if (x>10 || x<1)
error('User can only enter numbers between 1-10')
end
  댓글 수: 2
Bianca Brusis
Bianca Brusis 2016년 12월 12일
Hi, this works nearby. I want to enter in one field only numbers between 0 and 1 and when i enter 0.1 then everythink works fine when i enter 0,1 the programmcode use it like 1 but when i enter 0,2 the error occures. Any Idea?
Bianca Brusis
Bianca Brusis 2016년 12월 12일
It seems like matlab ignores the , in the enter field.

댓글을 달려면 로그인하십시오.


Star Strider
Star Strider 2016년 12월 11일
편집: Star Strider 2016년 12월 12일
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

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by