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

 采纳的回答

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

3 个评论

What this syntax sortrows(Array',1)'; means? That is, how to interpret this? It looks like a weird syntax. But worked well. Thank you!
What is the syntax for sorting cell arrays in descending order? Thank You!
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 Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by