Error in limiting user input to only numeric values?

Here is my code:
b = input('Enter the number of degrees celcius: ','s');
str2double(b);
while (isnumeric(b) == false)
disp(error_3)
b = input('Enter the number of degrees celcius: ','s');
str2double(b);
end
I'm running into an error where it doesn't update b and check it again on each run of the while loop? How can I fix this?

 采纳的回答

str2double(b);
That converts the character vector b into equivalent numeric form. Then it throws away the result because you did not assign it to anything.
while (isnumeric(b) == false)
The character vector is not numeric, and nothing you do inside your loop makes b numeric, so this is an infinite loop taking into account your other code.
If you were to have done b = str2double(b); then the result of that would always be numeric, and the isnumeric(b)==false would never succeed.
When b contains characters that are not valid in building a number, then str2double() returns nan. You can test for nan using isnan()

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by