MATLAB Answers

Classify the values inside edit box (isempty,isinteger, etc.)

2 views (last 30 days)
matlabnewby
matlabnewby on 26 Nov 2016
Answered: Sid Jhaveri on 8 Dec 2016
Hello guys, So i started the code with the following for the variable L :
L = str2double(get(handles.editL,'String'));
W = str2double(get(handles.editW,'String'));
C = str2double(get(handles.editC,'String'));
G = str2double(get(handles.editG,'String'));
H = str2double(get(handles.editH,'String'));
S = str2double(get(handles.editS,'String'));
%SEt the different possibilities of the input and the interaction of matlab
%with the user
%First, The user must not leave empty cases :
if isempty(L)
errordlg('Please enter a number into the text-box. We thank you in anticipation.', 'Error Code I');
set(handles.editL,'String','');
return
%Seconly, the user must enter values of L higher than 0, and return the edit box empty
elseif (L <= 0)
errordlg('Please enter a number that is higher than 0. Thank you.', 'Error Code II');
set(handles.editL,'String','');
return
%Thirdly, the program does not cover greenhouses with L higher than 100 meters, and return the edit box empty
elseif L >= 100
errordlg('Please enter a number that is lower than 100. Thank you.', 'Error Code II');
set(handles.editL,'String','');
return
%finally, the input must be a numerical value
elseif ~isnumeric(L);
errordlg('Please enter a valid number. Thank you.','Error Code III');
set(handles.editL,'String','');
return
end
Finally, i tried to add the above characteristics for S,W,H,G,C (By using or statement for each step and also by using severals if...end statements for each variables) but matlab seems not to accept it in both cases when i run the program. Basicaly, nothing happens (there is no error message, simply that the codes seem not working) Thank you a big time in advance to those who can give me a hint :)

  1 Comment

Walter Roberson
Walter Roberson on 26 Nov 2016
Note: the output of str2double is always numeric; if it was unable to convert something then it returns NaN. Furthermore if it had not been numeric then you would have had a problem comparing the value to a number. When you do have tests for correct data type, you should always place the tests before you use the value.

Sign in to comment.

Answers (1)

Sid Jhaveri
Sid Jhaveri on 8 Dec 2016
1) You must handle the case where there is NaN (as pointed out by Walter Roberson).
2) I am assuming that you like to get only numeric data from your edit box. If this is the case, then you can use "appdesigner" (available in MATLAB R2016a and higher version) which has numeric edit box.
3) You can also refer to the MATLAB Answers links for more helpful information:

  0 Comments

Sign in to comment.

Sign in to answer this question.

Tags