Matlab - ¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

 
Vista:
sin imagen de perfil

¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

Publicado por pedro (4 intervenciones) el 12/06/2019 22:45:44
Buenos días Soy nuevo tanto en este foro como en el manejo de MATLAB, y desesperado ya de tanto insistir decidí recurrir a uds esperando que alguien me pueda ayudar con este problema:

Tengo una GUI que tiene "n" filas (las filas dependen del valor que el usuario ingresa en un cuadro de texto) y 10 columnas. Necesito un código (algo así como un evento keypresskeypress) que me permita evaluar los datos ingresados ​​que no son numéricos tanto en el uitable como en algunos cuadros de texto que tengo en la GUI principal. No sé mucho acerca de la gestión de eventos en MATLAB y estoy teniendo muchos problemas con esto. Mi uitable se llama ("TablaDatosElementos") y el cuadro de texto que permite crear el número de filas se llama ("NumElem")

Requiero que la entrada y el reconocimiento de los caracteres se realicen de inmediato (como se logra con una pulsación de tecla en Visual Basic) y requiero que sean solo caracteres numéricos, con un punto decimal, con signos de + y / o -.


Al consultar el foro oficial de MATLAB, hay usuarios que me dicen que necesito componentes de JAVA para el trabajo (https://undocumentedmatlab.com/blog/editbox-data-input-validation); sin embargo, no sé cómo usar estas herramientas porque soy un principiante en MATLAB.


Muchas gracias y espero que puedan ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

Publicado por Daniel (354 intervenciones) el 12/06/2019 23:42:33
Hola,

En GUIDE es algo complicado, en App Designer hay un objeto que solo admite entradas de valores numéricos. Por ejemplo, lo puedes ver en esta aplicación.

Para hacerlo en GUIDE tienes que capturar el evento KeyPressFnc y comprobar que la tecla escrita es valida (numero o seprardor de decimales). En caso de que lo sea se añade el texto a lo que se ha escrito y en caso contrario se omite. Puede dar problemas de usabilidad porque no vas a saber dónde se introduce el caracer, solo lo que se introduce.

Otra alternativa es llamar objetos Java que cuentan con esa propiedad.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

Publicado por pedro (4 intervenciones) el 13/06/2019 01:36:13
Eso mismo me habian dicho en el foro de MATLAB. Tenia que usar si o si herramientas de JAVA para la realizacion del codigo, incluso se me dio un enlace a una pagina donde hay documentación sobre el tema, pero sinceramente no entiendo como agregar dichas funcionalidades a mi código. Tienes alguna idea de como podría hacerlo? Te puedo facilitar mi código si así lo deseas.
Muchas gracias por tu respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

Publicado por pedro (4 intervenciones) el 13/06/2019 04:56:07
Hola de nuevo. Pensándolo bien tal vez no requiero que la validación se haga de manera "inmediata", se puede dar de tal manera que se de al pasar de una celda a otra ( de mi uitable "TablaDatosElementos" ) se ejecute la acción de validación, borrando de esa primera celda los caracteres que no serán numéricos, y según tengo entendido esto se puede lograr con la función "CellEditCallback", pero no se como crear dicho código. Tal vez así no se tenga que recurrir a herramientas de JAVA para la generación del código. Espero que bajo esta nueva condición, no se si así sea mas fácil pedir su ayuda. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

Publicado por Daniel (354 intervenciones) el 13/06/2019 09:24:30
Hola,

Mi consejo es que migres a App Desinger, es la herramienta que Matlab va a desarrollar en el futuro. Mientras que GUIDE es una herramienta cuyo desarrollo ha sido abandonado.

En App Desinger tiene un combo que solo admite valores numéricos y la validación se hace en tiempo real. Por ejemplo, fíjate en la captura de pantalla, es lo que sale en un campo numérico de App Desinger sin escribir ningún código adicional.

Aún así, si la validación no es en tiempo real, es suficiente con poner en el callback del editor convertir la cadena a numero y omitir el valor si str2double devuelve un NaN.

Saludos,
Daniel Rodríguez.
Analytics Lane


Error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

Publicado por pedro (4 intervenciones) el 13/06/2019 16:56:58
Me puedes aclarar algo? Si uso App Desinger para hacer una APP tengo que usar siempre "MATLAB Compiler." para poder ejecutarla? ¿ O "MATLAB Compiler" tienen incorporado la herramienta "Application Compiler" para dejar mi aplicación como .EXE y no depender de ningún producto de MATLAB para ejecutar la App ?. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo permitir solo la entrada de datos numéricos a uitable y cuadro de texto?

Publicado por Daniel (354 intervenciones) el 13/06/2019 18:07:35
En ese aspecto es igual que GUIDE, se puede ejecutar en Matlab o compilar para enviar a usuarios que no tengan Matlab.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar