Find Max of Array of structures.
Show older comments
I have a 1x27 structure with five fields. I Need to calculate the country with the most gold medals. so I need to find the max of all the elements in the gold field. How do I do this. Thanks. My structure looks like: Countries, gold , silver, bronze
"AUS" 2 1 0
"AUT" 4 6 6
"BLR" 1 1 1
"CAN" 14 7 5
Answers (2)
Where S is your structure:
[cnt,idx] = max([S.gold]);
S(idx).Countries
A comma-separated list is used to concatenate all of the gold values into one vector:
2 Comments
Arno Claassens
on 3 Mar 2020
Stephen23
on 4 Mar 2020
@Arno Claassens: please remember to accept the answer that helped you most!
Steven Lord
on 3 Mar 2020
Rather than storing your data in a struct array I'd consider storing it in a table array. The struct2table function may be able to help you convert your data into a table. If you made a table named medals with a variable named Gold then something like this should work:
maxGoldMedals = max(medals.Gold)
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!