Testing if a input is a numerical (double) of character
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jucimar Carpe
el 18 de Ag. de 2019
Comentada: Jucimar Carpe
el 18 de Ag. de 2019
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 comentarios
Respuesta aceptada
Adam Danz
el 18 de Ag. de 2019
Editada: Adam Danz
el 18 de Ag. de 2019
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 comentarios
Adam Danz
el 18 de Ag. de 2019
Do you mean a certain input is not producing the expected output with the code from my answer? Or is there a different problem?
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!