Matlab - Saber si un elemento de la tabla está vacío GUI DE MATLAB

 
Vista:

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por Marta (4 intervenciones) el 07/05/2018 16:07:40
Buenas tardes,
estoy haciendo una aplicación en GUI de Matlab en la cual los datos se introducen por pantalla en una tabla y mi pregunta es la siguiente:
Quisiera que al ejecutar la aplicación si algún hueco de la tabla quedase vacío mandara un mensaje de error al usuario diciendo 'Por favor, introduzca todos los valores en la tabla'
La tabla en cuestión se llama 'data' y probé a convertirla a matriz usando la instrucción cell2mat, el caso es que cuando hago la condicón
1
2
3
4
if isempty(data)
    errordlg('Por favor introduzca datos','Mensaje')
    data=zeros(10,9)
end

este mensaje salta solo si dejo COMPLETAMENTE vacía la matriz, no solo cuando falta un único elemento.
Espero haberme explicado con claridad, y muchísimas gracias de antemano.
¡Me parece un foro estupendo y espero que alguien me pueda ayudar!
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/05/2018 18:24:01
te propongo esta forma, puede que no funcione ya que depende del formato que tengas en la tabla, aunque si no has modificado el formato debería funcionar muy bien, en caso de que no funcione podrías adjuntar tus archivos en el foro, además recuerda cambiar el handles.uitable1 del código que te adjunto si no es el mismo nombre de tag que le tienes a tu tabla


1
2
3
4
5
6
data=(get(handles.uitable1,'Data'));
data=cellfun(@str2double,data);
if sum(sum(isnan(data)))~=0
errordlg('Por favor introduzca datos','Mensaje')
data=zeros(10,9)
end
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

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por Marta (4 intervenciones) el 07/05/2018 21:49:19
Muchas gracias por la ayuda,
pero resulta que ahora si se rellena la tabla correctamente también salta el mensaje de error, ¿por qué puede ser?
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/05/2018 21:55:55
porque en este caso supuse que todos los valores deberían ser numéricos, prueba esta solución :

1
2
3
4
5
data=(get(handles.uitable1,'Data'));
if sum(sum(cellfun(@isempty,data)))~=0
errordlg('Por favor introduzca datos','Mensaje')
data=zeros(10,9)
end
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

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por Marta (4 intervenciones) el 07/05/2018 22:17:14
Siento estar siendo pesada, pero es que no me sale (de hecho no entra en el bucle porque en el workspace de matlab sigue saliendo error de concatenación)
Ya tengo el programa montado y cuando las tablas se completan bien el programa se ejecuta perfectamente. Lo que busco es que si el usuario se olvida de meter algún dato en la tabla salga un mensaje de error para recordarle que rellene todos los huecos.
Agradezco enormemente tu ayuda, es lo único que me falta para acabar la gui.
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/05/2018 22:21:53
como te he dicho en la primera respuesta, adjunta tus archivos porque las tablas tienen formatos diferentes , así obtienes la respuesta que te sirve
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

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por Marta (4 intervenciones) el 07/05/2018 22:35:54
El primer pushbuttom es para hacer la tabla de las dimensiones deseadas


function pushbutton1_Callback(hObject, eventdata, handles)
filasdata=str2double(get(handles.uitable1,'String'));%Tomar el valor del número de filas
columnasdata=3;%3 columnas
set(handles.uitable1,'Data',repmat({[]},filasdata,columnasdata))%Configurar la tabla de entrada de data vacía
end

El segundo pushbuttom es para coger los datos de las tabla y así poder operar con ellos


function pushbutton2_Callback(hObject, eventdata, handles)
data=get(handles.uitable1,,'Data');%Coger los valores de la tabla data
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Saber si un elemento de la tabla está vacío GUI DE MATLAB

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/05/2018 22:40:56
Si no comprimes tus archivos y los adjuntas en el foro es complicado ayudarte, es necesario ejecutar tus archivos para ver los formatos de tus tablas
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