MATLAB: Sort a structure

sortstructure

Is it possible to create a structure that holds the following information:
  • id_number
  • length
such that I can then sort the structure by length from largest to smallest. I then want to retrieve the id_number for the top 5 elements.

Best Answer

something like:
s = struct('id_number', mat2cell(1:100, 1, ones(100, 1)), 'length', mat2cell(rand(1, 100), 1, ones(100, 1)));
[a, b] = sort([s.length]);
[s(b(1:5)).id_number]