Borrar filtros
Borrar filtros

I want to ascend cell

1 visualización (últimos 30 días)
Ahmed Hassaan
Ahmed Hassaan el 18 de Jun. de 2012
hey , I want to ascend the rows based on a specific columns in the cell array . here's an example
The input in work space is
cellmobility{1,1}
x 4
y 2
z 1
g 3
the output i seek in work space is
cellmobility{1,1}
z 1
y 2
g 3
x 4

Respuesta aceptada

Thomas
Thomas el 18 de Jun. de 2012
There might be an easier way of doing this but the following should work..
a{1,1}={'x 4';'y 2';'z 1';'g 3'};
a{1,1}
p=cell2mat(a{1,1}); %convertign to mat
check=str2double(cellstr(p(:,3))); % getting col 3, i.e. the num to sort
[l,row]=sort(check); % sorting
out{1,1}=p(row,:); % reorder according to sort
out{1,1}
  2 comentarios
Ahmed Hassaan
Ahmed Hassaan el 18 de Jun. de 2012
well, Its working but i was making x and y and z and g for simplicity assume these variables are numbers .,
Ahmed Hassaan
Ahmed Hassaan el 18 de Jun. de 2012
a{1,1}=[10 4 4;5 4 2;3 4 1;2 4 3];
a{1,1}
p=(a{1,1}); %convertign to mat
check=(p(:,3)); % getting col 3, i.e. the num to sort
[l,row]=sort(check); % sorting
out{1,1}=p(row,:); % reorder according to sort
out{1,1}

Iniciar sesión para comentar.

Más respuestas (1)

Andrei Bobrov
Andrei Bobrov el 18 de Jun. de 2012
c{1,1} = cellstr(sortrows(char(c{1,1}),3));

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by