Changing the ASCII sort order format?

2 visualizzazioni (ultimi 30 giorni)
Zeynab Mousavikhamene
Zeynab Mousavikhamene il 2 Nov 2019
Risposto: Stephen23 il 2 Nov 2019
I use
S = orderfields(S1)
to sort order fields of strucutre array. I have 10 files named 1.jpg, 2.jpg upto 10.jpg. After using orderfiled the result is: 1.jpg, 10.jpg, 2.jpg, ...., 9.jp
I need to have 10 after 9. Any idea?

Risposte (2)

Walter Roberson
Walter Roberson il 2 Nov 2019
struct arrays cannot have fields with those names -- only table objects can have fields with those names (R2019b onwards only.) Therefore the question is not relevant. You need to sort contents not field names. I discussed how to sort contents in response to your previous related question https://www.mathworks.com/matlabcentral/answers/488816-sort-the-dir-loaded-files
  2 Commenti
Zeynab Mousavikhamene
Zeynab Mousavikhamene il 2 Nov 2019
@ Walter Roberson Thanks a ton Walter. Why struct arrys cannot have fields with those names? I am having struct array with those names and it looks ok just having problem with their sorting style.
Stephen23
Stephen23 il 2 Nov 2019
"Why struct arrys cannot have fields with those names?"
The MATLAB documentation states "Field names, like variable names, must begin with a letter, can contain letters, digits, or underscore characters, and are case sensitive"
Your names start with digits (not a letter as the documentation requires) and contains a period character (not a permitted character).

Accedi per commentare.


Stephen23
Stephen23 il 2 Nov 2019
To sort filenames into the order that you want download my FEX submission natsortfiles:
You can find plenty of examples in the HTML help, the Mfile help, and the online description.

Categorie

Scopri di più su Structures in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by