Find Max of Array of structures.

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

Respuestas (2)

Stephen23
Stephen23 el 3 de Mzo. de 2020
Editada: Stephen23 el 3 de Mzo. de 2020
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 comentarios

Arno Claassens
Arno Claassens el 3 de Mzo. de 2020
thanks that helps a lot
Stephen23
Stephen23 el 4 de Mzo. de 2020
@Arno Claassens: please remember to accept the answer that helped you most!

Iniciar sesión para comentar.

Steven Lord
Steven Lord el 3 de Mzo. de 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)

Categorías

Etiquetas

Preguntada:

el 3 de Mzo. de 2020

Comentada:

el 4 de Mzo. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by