首页 > 解决方案 > 如何在 MATLAB 中验证输入是否为数字

问题描述

这是我为获得每个数字等级的相应字母等级而编写的代码。我想确保用户没有输入任何字符串或字符作为输入。只有数字。所以我使用了 isumeric 函数,但代码不起作用,当我输入字符串时,while 循环不会中断。它只是给我一个错误。将不胜感激任何帮助。谢谢你。

c=input('What is your grade?  ');
   while 1
if  ~isnumeric(c)
    break
end
if c>=90 && c<=100
   disp('A');
elseif c<90 && c>=80
    disp('B');
else
    disp('F');
end
   end

标签: matlab

解决方案


input评估用户输入的内容*。如果用户输入的不是有效的 MATLAB 表达式,那么您会看到一条错误消息。反而,

c = input('What is your grade?  ', 's');

's'参数使得该函数准确地返回用户键入的内容,作为字符串。然后,您可以使用str2double将其转换为数字。如果不是数字,则返回 NaN。您可以对此进行测试:

while true
   c = input('What is your grade?  ', 's');
   c = str2double(c);
   if isnan(c)
      break
   end
   disp(c)
end

* 这种评估实际上input在这种形式下使用很危险,例如用户可以输入delete('c:/windows')或类似的东西来破坏您的系统。


推荐阅读