MATLAB: How to sort one field of a structure based on the values of another field

sortstructures

Let's say I have a structure 'struct' with two fields 'field1' and 'field2'. The length of the fields is unknown, but could be maximum 6. Each element of 'field1' must be a letter from the set {a,b,c,d,e,f} with no repetitions of a letter. Is there any way I can sort the values of 'field2' according to 'field1' in alphabetical order. For example, if 'field1' = [d b f] and 'field2' = [4 9 7], I would like to sort 'field2' such that 'field2' = [9 4 7].

Best Answer

The sort function returns the order of indices of an array for sorting. So
[A_sorted,ind] = sort(A);
can be used to sort another array B by
B_sorted_by_A = B(ind);