下面是我在程序中使用的输入对话框。有人知道吗 当用户输入不是数字时,如何“很好地”处理这种情况? 此外,如果数字超出范围minlev - maxlev那么 弹出错误对话框,但你不能按OK按钮,因为 输入对话框在它前面弹出。有谁知道如何解决 此?
RVP= 1;
while ( RVP )
prompt = {'Enter the corridor width (1050-1400mm) :'};
dlg_title = 'Input';
num_lines=1;
answer = inputdlg(prompt,dlg_title,num_lines);
if(str2num(answer{1})<1050 || (str2num(answer{1})>1400))
errordlg('Number is out of range');
else
w1 = (2*answer{1}-1050-1400)/(1400-1050)
end
end
答案 0 :(得分:1)
使用isnumeric
。然后,您可以在错误对话框后重新调用inputdlg。
要防止errordlg框被遮盖,请使用uiwait。
while ( RVP )
prompt = {'Enter the corridor width (1050-1400mm) :'};
dlg_title = 'Input';
num_lines=1;
answer = inputdlg(prompt,dlg_title,num_lines);
if ~isnumeric(answer) || (str2num(answer{1})<1050 || (str2num(answer{1})>1400))
uiwait(errordlg('Number is out of range'));
answer = inputdlg({'Please enter a valid input (1050-1400mm) :'},...
dlg_title,num_lines);
end
w1 = (2*answer{1}-1050-1400)/(1400-1050)
end