MATLAB Answers

Changing the ASCII sort order format?

1 view (last 30 days)
Zeynab Mousavikhamene
Zeynab Mousavikhamene on 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?

  0 Comments

Sign in to comment.

Answers (2)

Walter Roberson
Walter Roberson on 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 Comments

Zeynab Mousavikhamene
Zeynab Mousavikhamene on 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.
Stephen Cobeldick
Stephen Cobeldick on 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).

Sign in to comment.


Stephen Cobeldick
Stephen Cobeldick on 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.

  0 Comments

Sign in to comment.

Sign in to answer this question.


Translated by