mean of each column of a cell array that contains cell arrays
5 views (last 30 days)
Show older comments
Peter P
on 20 Dec 2017
Commented: Nandini Chatterjee
on 9 Apr 2020
I have a cell array A(2x82). Cell array A contains in each cell cell arrays of different row sizes but equal column sizes. To be specific the column sizes are always 1.
First I want to combine the two rows of A and then calculate the mean of each column of cell array A. As a result i would get a 1x82 matrix.
Any suggestion? Thanks in advance, Peter
2 Comments
Walter Roberson
on 20 Dec 2017
You have a 2 x 82 cell array of column vectors. When you take the mean of each column, I would expect a 2 x 82 numeric result, not a 1 x 82 numeric result.
Accepted Answer
Walter Roberson
on 20 Dec 2017
cellfun(@mean, A) %provided you want a 2 x 82 numeric result.
1 Comment
Walter Roberson
on 20 Dec 2017
sum(cellfun(@sum, A)) ./ sum(cellfun(@length, A))
More Answers (1)
Jos (10584)
on 20 Dec 2017
Another approach, as all cells contain a column vector:
M = arrayfun(@(k) mean([A(k,1) ; A(k,2)]), 1:size(A,1))
4 Comments
Walter Roberson
on 9 Apr 2020
size(A,2) is the size of the second dimension of the array A -- the number of columns. 1:size(A,2) is then a vector of numbers, 1, 2, 3, 4, ... until the number of columns of A
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!