how to sort the rows in an cell array.

2 visualizaciones (últimos 30 días)
jaah navi
jaah navi el 24 de Jun. de 2021
Comentada: jaah navi el 25 de Jun. de 2021
I am having cell array of size 3x1
[5,6]
[1,2]
[5,8]
could anyone help me how to sort the rows to get the result in the following manner
[1,2]
[5,6]
[5,8]
  1 comentario
Scott MacKenzie
Scott MacKenzie el 24 de Jun. de 2021
It would help if you posted the code that generates the cell array you want to sort.

Iniciar sesión para comentar.

Respuesta aceptada

Mohammad Sami
Mohammad Sami el 25 de Jun. de 2021
You can try this out.
B = {[5,6] [1,2] [5,8]};
[~,i] = sort(cellfun(@(x)sum(x.*power(10,[length(x):-1:1]-1)),B));
B = B(i)
B = 1×3 cell array
{[1 2]} {[5 6]} {[5 8]}
  3 comentarios
Mohammad Sami
Mohammad Sami el 25 de Jun. de 2021
This is just converting the array into a decimal value so [5,6] to 56. So makes it easier to sort the numbers. Though you can replace it with the maximum value you expect to be present in your array and it should still work well enough.
B = {[5,6] [1,2] [5,8]};
cellfun(@(x)sum(x.*power(10,[length(x):-1:1]-1)),B)
ans = 1×3
56 12 58
jaah navi
jaah navi el 25 de Jun. de 2021
Thanks for your explanation.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by