Using inputdlg and isnan
16 次查看(过去 30 天)
显示 更早的评论
I need a user input using inputdlg, I need it to be a number and I need it to keep assking until I get a number. So far, it just gets stuck in a loop.
Please help, this should be easy!
nof=inputdlg('Enter number of floors:');
NOF=str2double(nof);
while isempty(NOF)||isnan(NOF)
disp('error')
nof=inputdlg('Enter number of floors:');
uiwait;
end
采纳的回答
Tommy
2020-5-2
In your code, NOF never changes inside the loop. Therefore, if the loop enters, it won't ever exit because the exit condition will never be true. Make sure you are calling str2double within the loop:
res=inputdlg('Enter number of floors:');
nof=str2double(res);
while isempty(res) || isnan(nof)
% ^ user canceled ^ input was not numeric
disp('error')
res=inputdlg('Enter number of floors:');
nof=str2double(res);
end
If you want to let the user use the command line:
opts.WindowStyle = 'normal';
res=inputdlg('Enter number of floors:', '', 1, {''}, opts);
nof=str2double(res);
while isempty(res) || isnan(nof)
disp('error')
res=inputdlg('Enter number of floors:', '', 1, {''}, opts);
nof=str2double(res);
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!