Mean, Max and Min of Structured Cell array

3 次查看(过去 30 天)
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.

采纳的回答

Matt J
Matt J 2021-4-8
编辑:Matt J 2021-4-8
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 个评论
Matt J
Matt J 2021-4-10
But I just showed you that it works with @(x) x(1)
Ganesh Naik
Ganesh Naik 2021-4-10
Hi Matt, thanks. I have managed to get it work.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by