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

2 ビュー (過去 30 日間)
matlabnewby
matlabnewby 2016 年 11 月 26 日
回答済み: Sid Jhaveri 2016 年 12 月 8 日
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 件のコメント
Walter Roberson
Walter Roberson 2016 年 11 月 26 日
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.

サインインしてコメントする。

回答 (1 件)

Sid Jhaveri
Sid Jhaveri 2016 年 12 月 8 日
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:

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by