MATLAB Answers

Mean, Max and Min of Structured Cell array

46 views (last 30 days)
Ganesh Naik
Ganesh Naik on 8 Apr 2021
Commented: Ganesh Naik on 10 Apr 2021
Hi all, I have a structured cell array where I need to compute the mean of each cell from column 4. Column 3 contains the name of the data (repeated for number of days 31, 29 etc.). At the end I would like to display the results as name (3rd column one value) , Average, Min and Max of each cell of 4th column data. Any help (sample example) in this regard is highly appreciated. For your reference I have attached the picture.

Accepted Answer

Matt J
Matt J on 8 Apr 2021
Edited: Matt J on 8 Apr 2021
You should first convert everything to table form.
Column3={{'dog';'dog';'dog'},{'cat';'cat'}}; %Original data
Column4={[1;2;3], [4;5]};
Column3=string( vertcat(Column3{:}) );
Column4=vertcat( Column4{:} );
T=table(Column3,Column4,'VariableNames',{'Names','Data'})
T = 5×2 table
Names Data _____ ____ "dog" 1 "dog" 2 "dog" 3 "cat" 4 "cat" 5
From that point on, it all becomes much easier:
Means = varfun(@mean,T,'GroupingVariables','Names')
Means = 2×3 table
Names GroupCount mean_Data _____ __________ _________ "cat" 2 4.5 "dog" 3 2
Maxs= varfun(@max,T,'GroupingVariables','Names')
Maxs = 2×3 table
Names GroupCount max_Data _____ __________ ________ "cat" 2 5 "dog" 3 3
  14 Comments
Ganesh Naik
Ganesh Naik on 10 Apr 2021
Hi Matt, thanks. I have managed to get it work.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!