Testing if a input is a numerical (double) of character
20 次查看(过去 30 天)
显示 更早的评论
Hi folks, i'm implementing a software on appDesigner and i want to prevent wrong entries from users.
I've tried to use the folowing code but it's not working. My gol would be, check if the user entered with a number or character. If it's a number then OK, otherwise open a warning dialog box informing the error and then stop the program.
The way i've writed it's not working.
Sbase_gerador = str2double(strrep((app.potencia.Value),',','.'));% Read entry data and convert comma to '.' if needed
teste_potencia = isnumeric(Sbase_gerador)
if teste_potencia==0
opts= struct('WindowStyle','modal','Interpreter','tex');
tensao_incorreta_t2 = warndlg('\fontsize{11}Caracteres diferentes de números não são aceitos.',...
'Entrada incorreta de dados', opts);
app.potencia.Value='0';
end
0 个评论
采纳的回答
Adam Danz
2019-8-18
编辑:Adam Danz
2019-8-18
You can use str2double() to convert the string to numeric. If the string did not contain something that can be converted to numeric, it will return NaN.
isNumber = ~isnan(str2double(str));
Examples
isNumber = ~isnan(str2double('100')) % true
isNumber = ~isnan(str2double(' 100 ')) % true
isNumber = ~isnan(str2double('3.1415926')) % true
isNumber = ~isnan(str2double('8.3205e+24')) % true
isNumber = ~isnan(str2double('Abcd')) % false
isNumber = ~isnan(str2double('5 and 7')) % false
6 个评论
Adam Danz
2019-8-18
Do you mean a certain input is not producing the expected output with the code from my answer? Or is there a different problem?
更多回答(0 个)
另请参阅
类别
在 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!