MATLAB: Find the max value in a struct

maxstruct

Hi,
I have a struct (attached) and I want to find the max value of the second column in the field score. I have tried this code:
[val,idx] = max([GlobalScore.score])
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
but it gives an error, can you help me? thanks

Best Answer

Your basic concept of how to do this is okay, you just need to pay more attention to the details, such as the data sizes, and what data classes the data are. In this case you have some character and some numeric data, and they all have different number of rows (so concatenating horizontally would never work).
>> C = vertcat(GlobalScore.score);
>> M = str2double(C(:,1));
>> M(:,2) = vertcat(C{:,2});
>> max(M)
ans =
4.4333e+006 2.5831e-001
Notes:
  1. The first column of data is not numeric, but is stored as character vectors.
  2. Using a structure with just one field is not good program design. It would be simpler to use a cell array.