If I'm understanding correctly, you have a struct array, s, of size 1x30, with a single field (let's call it x). Something like
s(2).x = 11
s(30).x = 1.123
Use arrayfun to access the field of each struct in the array. Because there's a uniform output, you'll get a vector output. Then take the max:
max(arrayfun(@(z) z.x, s))
Alternatively, use the colon operator to access each element, turn it into a single array using the brackets, and then take the max:
Hope this helps!