How to sort a cell array based on the first row?

I have two rows of cell array:
Combined =
2×3 cell array
{'4'} {'1'} {'6'}
{'1'} {'3'} {'4'}
Now I want to sort the first row of this 2*3 cell array from small number to large number and the second row will be sorted according to the first row, which means the second row should look like this:
{'1'} {'4'} {'6'}
{'3'} {'1'} {'4'}
Then I want to extract the second row as an 1*3 cell array.
Can someone help me? Many thanks.

 Respuesta aceptada

Out of curiosity, is there some reason you are using a cell array rather than a numeric array to store these numeric data?
% Original data
in = {'4','1','6';'1','3','4'}
in = 2×3 cell array
{'4'} {'1'} {'6'} {'1'} {'3'} {'4'}
% Sort first row, and get sorting index
[in_sorted,sorting_idx] = sort(in(1,:))
in_sorted = 1×3 cell array
{'1'} {'4'} {'6'}
sorting_idx = 1×3
2 1 3
% Extract last row, sorted according to first
out = in(2,sorting_idx)
out = 1×3 cell array
{'3'} {'1'} {'4'}

1 comentario

Dongyan Zhu
Dongyan Zhu el 18 de Jun. de 2021
Thank you! I just want to directly use the cell array for the data transfer later in the task.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2020a

Etiquetas

Preguntada:

el 18 de Jun. de 2021

Comentada:

el 18 de Jun. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by