Finding min values in structure array
14 views (last 30 days)
Show older comments
Below is my current structure array, and I would like to be able to search the structure and find the minimum age.
field1='relation';
value1={'spouse', 'son', 'son', 'daughter', 'daughter'};
field2='name';
value2={'Rebekah', 'Caleb', 'Isaac', 'Faith', 'Annabel'};
field3='state';
value3={'OH', 'VA', 'VA', 'VA', 'VA'};
field4='age';
value4={'29','7','6','4','2'};
s = struct(field1,value1,field2,value2,field3,value3,field4,value4);
2 Comments
per isakson
on 10 Oct 2017
Edited: per isakson
on 10 Oct 2017
Are the values of age a mistake? They are character strings,
value4={'29','7','6','4','2'};
I replaced the assignment by
value4={29,7,6,4,2};
Then finding min is simple
>> [s.age]
ans =
29 7 6 4 2
>> [val,ix] = min([s.age])
val =
2
ix =
5
>>
Accepted Answer
More Answers (2)
Nicolas Schmit
on 10 Oct 2017
First, convert the age data from string to numeric, and concatenate it into an array.
ageArray = arrayfun(@(x) str2double(x.age), s);
Now, find the index of the minimum age.
[~, iAgeMin] = min(ageArray);
0 Comments
Jan
on 10 Oct 2017
This struct is impractical for searching, as well as it is to search for a minimum in values stored as strings. But it works:
num = str2double({s.age});
minValue = min(num);
0 Comments
See Also
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!