MATLAB Answers

How to get the mean of a cell array of matrices

2 views (last 30 days)
YH
YH on 10 Dec 2019
Commented: YH on 10 Dec 2019
Hallo,
I have a cell array (99*1000)
each cell for example test {1,1 } looks like this 1*4 double : [-1.7, 0.8,0.276, -0.2]
I want the mean of each column and for the entir cell array so that at the end will have a cell array (1*1000) with each cell: [mean of the first column, mean of the second column, mean of the third column, mean of the fourth column]
I hope some one could help, I know it a little bit complicated to explain exactly what I want to I attached the cell array as mat file.
I tried many things with cellfun and arrayfun but it seems that I am missing something because I couldn't reach the form that i really want.
Any tipps would be really helpful!
thanks in advanced!

  0 Comments

Sign in to comment.

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 10 Dec 2019
Edited: Stephen Cobeldick on 10 Dec 2019
>> out = permute(num2cell(mean(cell2mat(permute(test,[1,3,2])),1),2),[1,3,2]);
Checking:
>> size(out)
ans =
1 1000
>> out{1}
ans =
-1.346736 0.326463 0.236545 -0.045276
>> mean(vertcat(test{:,1}),1)
ans =
-1.346736 0.326463 0.236545 -0.045276

  1 Comment

YH
YH on 10 Dec 2019
Stephen Cobeldick: thank you so much!

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!