Hello,
I am trying to validate a user input as numeric while forcing the user to repeat if it is not. I currently have this working well as long as the user does not input a letter that is non numeric. I would like it to prompt the user again if they input a string instead of a number. Any help is appreciated.
Thanks
my input looks like
array(r, c) = str2num(input(['Digit for position ', num2str(c), ': '], 's'));
while array(r, c) > 6 || array(r, c) < 0
GUESS(r, c) = str2num(input(['Digit for position ', num2str(cc), ': '], 's'));
end

 採用された回答

Walter Roberson
Walter Roberson 2020 年 7 月 27 日
編集済み: Walter Roberson 2020 年 7 月 27 日

0 投票

array(r, c) = str2double(input(['Digit for position ', num2str(c), ': '], 's'));
while isnan(array(r,c)) || array(r,c) ~= fix(array(r,c)) || array(r, c) < 0 || array(r, c) > 6
array(r, c) = str2double(input(['Digit for position ', num2str(cc), ': '], 's'));
end
or
array(r, c) = str2double(input(['Digit for position ', num2str(c), ': '], 's'));
while ~ismember(array(r,c), 0:6)
array(r, c) = str2double(input(['Digit for position ', num2str(cc), ': '], 's'));
end

3 件のコメント

Scott Tobin
Scott Tobin 2020 年 7 月 27 日
Okay, thank you.
However, I know have the issue of it interpreting the input as a string. Inputing 'w' yields unrecognized funciton or variable 'w'
Scott Tobin
Scott Tobin 2020 年 7 月 27 日
Actually that was on me with a typo but I do have...
Unable to perform assignment because the size of the left side is 1-by-1 and the size
of the right side is 0-by-0 for the array in the loop
Scott Tobin
Scott Tobin 2020 年 7 月 27 日
Ope spotted was supposed to be str2double not str2num in the second. Appreciate the help I haven't seen it done in that manner before thanks for the tip

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by