Sort struct fields in gui

4 views (last 30 days)
Zohar
Zohar on 4 Jan 2022
Commented: Zohar on 10 Jan 2022
I double-click a struct var in the workspace, and it opens a "variables" window with two columns: field, value.
When I click the field button, I expect it to be sorted alphabetically, but it doesn't.
If I use orderfields(), then the fields are sorted in the gui.
  2 Comments
Zohar
Zohar on 4 Jan 2022
Not sure, but this is the general convetion in tables. If that's not what it does, then what does it do?
I think I just figured it out: it sorts the fields in the order that they were added to the struct. This is just weird.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 5 Jan 2022
In MATLAB, fields are not internally sorted for struct. struct('A', 1, 'B', 2) is not compatible for assignment or concatenation with a struct with the same content but fields reversed.
struct in MATLAB is not an abstract mapping of field names to content: struct fields are ordered in MATLAB.
Ordered fields is what is used in C and Fortran. struct in computing is tied to memory layout: once a field is created it is always at the same offset in memory, so it can be compiled as indexing that does not need to change as new fields are added (unless field reordering is done.)
There are, in computing, more general unordered mappings between names where the offset could potentially change as more fields are added. MATLAB offers containers.map for example.
  3 Comments
Zohar
Zohar on 10 Jan 2022
Whichever, but don't just invert the current "seemingly-random" order. But good points.

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!