Azzera filtri
Azzera filtri

Sorting cell arrays with characters and numbers

8 visualizzazioni (ultimi 30 giorni)
Given a cell array such as {'a1', 'a2', 'a3'...'a9', 'a10', 'a11','a12'}, in random order ofcourse, using the sort function gives me {'a1', 'a10', 'a11','a12','a1','a2',...'a9'}. What method can be used to get the right order?

Risposta accettata

Stephen23
Stephen23 il 30 Ott 2022
Modificato: Stephen23 il 30 Ott 2022
"What method can be used to get the right order?"
You could download my FEX submission NATSORT:
unzip it onto your MATLAB search path or into the current directory, then call it like this:
C = {'a11', 'a9', 'a3', 'a2', 'a12', 'a1','a10'}
C = 1×7 cell array
{'a11'} {'a9'} {'a3'} {'a2'} {'a12'} {'a1'} {'a10'}
D = natsort(C)
D = 1×7 cell array
{'a1'} {'a2'} {'a3'} {'a9'} {'a10'} {'a11'} {'a12'}

Più risposte (1)

Walter Roberson
Walter Roberson il 30 Ott 2022
Modificato: Walter Roberson il 30 Ott 2022
MATLAB already gives the "right" order, just not the order you want.
https://www.mathworks.com/matlabcentral/fileexchange/34464-customizable-natural-order-sort

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by