how to sort the rows in an cell array.

2 ビュー (過去 30 日間)
jaah navi
jaah navi 2021 年 6 月 24 日
コメント済み: jaah navi 2021 年 6 月 25 日
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
Scott MacKenzie 2021 年 6 月 24 日
It would help if you posted the code that generates the cell array you want to sort.

サインインしてコメントする。

採用された回答

Mohammad Sami
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)
B = 1×3 cell array
{[1 2]} {[5 6]} {[5 8]}
  3 件のコメント
Mohammad Sami
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)
ans = 1×3
56 12 58
jaah navi
jaah navi 2021 年 6 月 25 日
Thanks for your explanation.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by