Matlab - Mostrar datos ordenados en tabla

   
Vista:

Mostrar datos ordenados en tabla

Publicado por Ricardo (13 intervenciones) el 10/09/2015 20:42:29
Hola, estoy afinando el programa que estoy haciendo y me he encontrado con el siguiente problema:

Despues de presionar un boton el programa me muestra la siguiente tabla:

Datos-sin-ordenar


El problema que tengo es que necesito que los datos de la tabla se muestren ordenados segun los textos de la columna ramal, así:

Datos-ordenados


Por otro lado, corriendo el programa los datos que crea la tabla en el command window son:


Datos-en-command-window


El codigo que utilizo para generar la tabla es:

tablahorass=[Vall_uc Vall_usuario Vall_ramal num2cell(Vall_reqq)]
set(handles.tablaparcelas,'Data',tablahorass)


Agradeceria mucho cualquier sugerencia o ayuda.
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 Daniel

Mostrar datos ordenados en tabla

Publicado por Daniel (212 intervenciones) el 11/09/2015 19:53:35
Por lo que estuve viendo el ordenamiento de datos según una columna especifica depende un poco si los datos son o no numericos, más cuando, por lo que veo los tenes almacenados en un cell array.

pero después de pelear un rato creo que encontré una forma de hacerlo, si tenes un cell array llamado 'data'

1
2
3
4
5
6
7
8
col=6; % columna respecto de la cual ordenar
 
if isnumeric(data{1,col})
    [~,indice]=sort(cell2mat(data(:,col)));
else
    [~,indice]=sort(data(:,col));
end
ordenados=data(indice,:); % cell array ordenado

Fijate si esto te ayuda a solucionar tu pregunta

Avisanos como te fué

Saludos

Daniel
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

Mostrar datos ordenados en tabla

Publicado por Ricardo (13 intervenciones) el 13/09/2015 16:57:25
Hola Daniel, muchas gracias por tu ayuda, tu código funciona OK:

tablahorasxparcela=[Vall_uc Vall_usuario Vall_ramal num2cell(Vall_reqq)];

% Código

col=3; % columna respecto de la cual ordenar

if isnumeric(tablahorasxparcela(1,col))

else

[~,indice]=sort(tablahorasxparcela(:,col));

end

ordenados=tablahorasxparcela(indice,:);

set(handles.tablaparcelas,'Data',ordenados)
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