# how to sort the rows in an cell array.

2 vues (au cours des 30 derniers jours)
jaah navi le 24 Juin 2021
Commenté : jaah navi le 25 Juin 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 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Scott MacKenzie le 24 Juin 2021
It would help if you posted the code that generates the cell array you want to sort.

Connectez-vous pour commenter.

### Réponse acceptée

Mohammad Sami le 25 Juin 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 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
Mohammad Sami le 25 Juin 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 le 25 Juin 2021

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by