Hi,
Sorry if this has been asked / answered many times or very simple etc. etc!
If I have a cell array say Array = {B C A;1 3 2; D E F}
Is it possible to sort the first row in order, so its A B C, with the second and third rows changing corresponding to to this initial sort?
Final answer being {A B C;2 1 3;F D E}
Thanks in advance Matthew

 採用された回答

Andrei Bobrov
Andrei Bobrov 2011 年 12 月 23 日

1 投票

Array = {'B' 'C' 'A';1 3 2; 'D' 'E' 'F'}
out = sortrows(Array',1)';
OR
[id id] = sort(Array(1,:))
out = Array(:,id)

3 件のコメント

NALLARASU KRISH
NALLARASU KRISH 2022 年 3 月 10 日
What this syntax sortrows(Array',1)'; means? That is, how to interpret this? It looks like a weird syntax. But worked well. Thank you!
NALLARASU KRISH
NALLARASU KRISH 2022 年 3 月 10 日
What is the syntax for sorting cell arrays in descending order? Thank You!
Ananya
Ananya 2024 年 4 月 26 日
sortrows(Array',1)':: here since sortrows works for columns ,(sorting elements in a column of a matrix...)
you needed the row to be sorted here , so Array' is the transpose of it and then doing a retranspose of the result by doing sortrows(Array',1)'<-- to get the original matrix
for descending its simple, just add 'descend' at the end of these arguments (Array',1,'descend')'

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

その他の回答 (3 件)

Andreas Goser
Andreas Goser 2011 年 12 月 23 日

0 投票

It is not clear to me what your cell array really looks like, as your example is not valid, but the SORTROWS command should work.
Matthew
Matthew 2011 年 12 月 23 日

0 投票

Sorry if not clear...
The array consists of both strings and numbers
so Array = {'B' 'C' 'A';1 3 2;'D' 'E' 'F'}
where the letters are strings and the numbers numbers!
i tried the sortrows and it did not work
Thanks again, matthew
Matthew
Matthew 2011 年 12 月 23 日

0 投票

Apologies again!
Thanks to Andrei, works perfectly!

カテゴリ

ヘルプ センター および File ExchangeShifting and Sorting Matrices についてさらに検索

タグ

質問済み:

2011 年 12 月 23 日

コメント済み:

2024 年 4 月 26 日

Community Treasure Hunt

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

Start Hunting!

Translated by