Resort struct elements by one field values
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Walter Roberson
2011 年 3 月 6 日
One can re-sort in Matlab, and one can resort -to- Matlab, but I didn't know of any Matlab Resort ;-)
採用された回答
Matt Tearle
2011 年 3 月 6 日
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)
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!