how to sort the rows in an cell array.
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Scott MacKenzie
2021-6-24
It would help if you posted the code that generates the cell array you want to sort.
采纳的回答
Mohammad Sami
2021-6-25
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)
3 个评论
Mohammad Sami
2021-6-25
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)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!