mean of each column of a cell array that contains cell arrays

5 views (last 30 days)
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
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.
Peter P
Peter P on 20 Dec 2017
Edited: Peter P on 20 Dec 2017
You are right! I forgot to mention that I want to first combine the two rows of A and then calculate the mean. Any thoughts?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 20 Dec 2017
cellfun(@mean, A) %provided you want a 2 x 82 numeric result.

More Answers (1)

Jos (10584)
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
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

Sign in to comment.

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!