Sort a variables in structure
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Gabriele Curcio
am 5 Mai 2022
Bearbeitet: Stephen23
am 6 Mai 2022
I have this kind of variables in a struct:
var_1
var_10
var_11
...
var_19
var_2
var_21
and so on until var_24
Is there a manner to sort them like
var_1
var_2
var_3
var_4
...
var_24
?
0 Kommentare
Akzeptierte Antwort
Davide Masiello
am 5 Mai 2022
Bearbeitet: Davide Masiello
am 5 Mai 2022
See example below
clear,clc
s.var_1 = 1;
s.var_6 = 1;
s.var_3 = 1;
s.var_2 = 1;
s.var_5 = 1;
s.var_4 = 1;
s
orderfields(s)
0 Kommentare
Weitere Antworten (1)
Stephen23
am 5 Mai 2022
Bearbeitet: Stephen23
am 6 Mai 2022
Rather than forcing pseudo-indices into fieldnames, why not use an array with indexing (e.g. a cell array) ?
Here are two ways to sort those fieldnames into alphanumeric order:
S0.var_1 = 101;
S0.var_10 = 110;
S0.var_11 = 111;
S0.var_19 = 119;
S0.var_2 = 102;
S0.var_21 = 121
Method 1: REGEXP and SORT (only sorts the numeric part):
[~,X] = sort(str2double(regexp(fieldnames(S0),'\d+$','match','once')));
S1 = orderfields(S0,X)
[~,X] = natsort(fieldnames(S0));
S2 = orderfields(S0,X)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!