"if "function
1 次查看(过去 30 天)
显示 更早的评论
how to write "IF" function to only accept numbers NO letters
need to ask input number (if user type any letters need to ask again to give number)
i know basic IF function but i need to know how to verified the input as number or letter ?
thank you Vijay
0 个评论
采纳的回答
Jiro Doke
2012-2-19
You can use the isstrprop function. If answer is the input you got from your user (using the input command),
all(isstrprop(answer, 'digit'))
Here's an example:
while true
answer = input('Enter a number: ', 's');
if all(isstrprop(answer, 'digit'))
answer = str2double(answer);
break;
else
disp('Only numbers supported');
end
end
Here's another way. This way is slightly better because it allows decimal points:
while true
answer = input('Enter a number: ', 's');
answer = str2double(answer);
if ~isnan(answer)
break;
else
disp('Only numbers supported');
end
end
2 个评论
Jan
2012-2-19
The first method isstrprop(x,'digit') rejects the decimal point also, while the 2nd method accepts inputs as "3.14". In addition "1e3" should be accepted also, such that I prefer the STR2DOUBLE method.
更多回答(3 个)
Image Analyst
2012-2-19
Did you try using ischar() and isnumeric()? Or try something like this, or similar:
% Ask user for a number.
defaultValue = 45;
userPrompt = 'Enter the integer';
caUserInput = inputdlg(userPrompt, 'Enter the numeric value',1,{num2str(defaultValue)});
integerValue = round(str2num(cell2mat(caUserInput)));
% Check for a valid integer.
if isempty(integerValue)
% They didn't enter a number.
% They entered a character, symbols, or something else not allowed.
integerValue = defaultValue;
message = sprintf('I said it had to be an integer.\nI will use %d and continue.', integerValue);
uiwait(warndlg(message));
end
3 个评论
Image Analyst
2012-2-19
They are built in functions to check if the argument is a character or a number. Are they not in your help?
Walter Roberson
2012-2-19
In MATLAB, "if" is not a function: it is a control statement.
We've been nagging MathWorks for years to create a function equivalent to "if", but with no success yet :(
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!