
Problema de datos en Tabla en GUI
Publicado por Maria (6 intervenciones) el 13/03/2015 11:02:52
He hecho una interfaz de usuario que estudia elementos en una imagen, obteniendo área, valores máximos y mínimos de los píxeles y posición de estos objetos. Dentro de mi GUI he querido mostrar las imágenes estudiadas (con un plot que me rodea objetos y señala el centroide) y al lado una tabla que me muestre las características estudiadas de esos objetos (1 imagen, y al lado su tabla, puedo cambiar a la imagen siguiente con un botón y q los datos de la tabla cambien, etc...).
Como según el número de objetos la tabla tendra un número de filas u otro no he podido fijar el número de filas de esta pero es un problema que he solucionado configurandola desde el código, lo que no consigo solucionar es: la posición consta de 2 datos, [fila columna], y así se representa, pues no me lo permite, me da error por ser de distinto tipo al resto. He probado mil cosas, pero no consigo poder especificar ese tipo de dato para esa columna, el tamaño del tipo de dato más bien. Adjunto trozo de código e imágenes con el error que me da.
Estaría muy agradecida si alguien me diese una idea, muchísimas gracias de antemano.
----------------------------------------------------------------------------------------------------------------------------------------------------
%en el archivo .mat 'todalainformacion', tengo un struct 'todaslasimagenes' con la información de los objetos de cada imagen (en este %trozo de código de prueba solo accedo a la primera imagen
load todalainformacion
todaslasimagenes;
info=todaslasimagenes(1).imagen
%obtengo el número de filas de la tabla (según número de objetos de la imagen), para configurar la tabla según este
filas=length(info);
columnas=5;
nombrescolumnas={'Area','Max','Min','Media','Cent'};
%según las instrucciones de MATLAB necesito pasarlo a 'cell' para ingresar los datos en la tabla
datos=struct2cell(info)
w=cell(filas,5);
%se ve 'datos' como columnas y yo lo quiero en filas
for i=1:filas
columnadatos=datos(:,i);
filadatos=columnadatos';
w(i,:)=filadatos;
end
%para posicionarlo dentro de la interfaz donde quiero
pos1=get(handles.uipanel1,'Position');
t=uitable('ColumnName',nombrescolumnas,'Data',w,'Units','characters','Position',pos1);
--------------------------------------------------------------------------------------------------------------------------------------------------
En las dos imágenes adjuntas muestra en la primera la estructura de 'todaslasimagenes' y de 'datos' al pasarlo a cell, y en la segunda el fallo que me da, el no poder insertar la posición por ser de tamaño [1 2]. Gracias de nuevo.


Como según el número de objetos la tabla tendra un número de filas u otro no he podido fijar el número de filas de esta pero es un problema que he solucionado configurandola desde el código, lo que no consigo solucionar es: la posición consta de 2 datos, [fila columna], y así se representa, pues no me lo permite, me da error por ser de distinto tipo al resto. He probado mil cosas, pero no consigo poder especificar ese tipo de dato para esa columna, el tamaño del tipo de dato más bien. Adjunto trozo de código e imágenes con el error que me da.
Estaría muy agradecida si alguien me diese una idea, muchísimas gracias de antemano.
----------------------------------------------------------------------------------------------------------------------------------------------------
%en el archivo .mat 'todalainformacion', tengo un struct 'todaslasimagenes' con la información de los objetos de cada imagen (en este %trozo de código de prueba solo accedo a la primera imagen
load todalainformacion
todaslasimagenes;
info=todaslasimagenes(1).imagen
%obtengo el número de filas de la tabla (según número de objetos de la imagen), para configurar la tabla según este
filas=length(info);
columnas=5;
nombrescolumnas={'Area','Max','Min','Media','Cent'};
%según las instrucciones de MATLAB necesito pasarlo a 'cell' para ingresar los datos en la tabla
datos=struct2cell(info)
w=cell(filas,5);
%se ve 'datos' como columnas y yo lo quiero en filas
for i=1:filas
columnadatos=datos(:,i);
filadatos=columnadatos';
w(i,:)=filadatos;
end
%para posicionarlo dentro de la interfaz donde quiero
pos1=get(handles.uipanel1,'Position');
t=uitable('ColumnName',nombrescolumnas,'Data',w,'Units','characters','Position',pos1);
--------------------------------------------------------------------------------------------------------------------------------------------------
En las dos imágenes adjuntas muestra en la primera la estructura de 'todaslasimagenes' y de 'datos' al pasarlo a cell, y en la segunda el fallo que me da, el no poder insertar la posición por ser de tamaño [1 2]. Gracias de nuevo.


Valora esta pregunta


0