Resort struct elements by one field values
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
In a struct
A = struct('f1', [some values], 'f2', [some values])
Can we resort elements of A by increasing order in f1?
For example:
A = struct('f1', [some values], 'f2', [some values])
A.f1 is a 1 X 5 double value [3, 4, 1, 2, 5]
A.f2 is 1 X 5 double value [val 3, val 4, val 1, val 2, val 5]
How to create another struct B as
B = struct('f1', [1 , 2, 3, 4, 5], 'f2', [val 1, val 2, val 3, val 4, val 5])?
1 Kommentar
Walter Roberson
am 6 Mär. 2011
One can re-sort in Matlab, and one can resort -to- Matlab, but I didn't know of any Matlab Resort ;-)
Akzeptierte Antwort
Matt Tearle
am 6 Mär. 2011
Would this do it?
a.foo = [3, 4, 1, 2, 5];
a.bar = {'a','b','c','d','e'};
% assuming b already exists
b = a;
% reorder b
[sortfoo,idx] = sort(a.foo);
b.foo = sortfoo;
b.bar = b.bar(idx)
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Programming Utilities 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!