Average of specific columns from cells in cell array

Hi,
I am new to cell array function so excuse me if the answer is obvious.I have a cell array data 1x84 each and each cell is has five columns by variable rows number. I am trying to average the first column of cells 4 to 84. how do I do that? I wasn't successful using
A=cellfun(@mean,alldata{1,5:84}(:,1))
Thank you!

Answers (2)

result = cellfun(@(x)mean(x(:,1)),alldata(4:84));

9 Comments

When using your suggestion I get this error message Index exceeds matrix dimensions.
Error in Nano>@(x)mean(x(:,1))
Error in Nano (line 31) result = cellfun(@(x)mean(x(:,1)),alldata(4:84));
Thank you for your suggestion though!
You said (I think) that alldata had at least 84 elements. What does this show:
size(alldata)
in the variable windows is 1x84 cell
Please attach here your alldata.
Are some of the cell elements empty?
yes some cells are empty. below is the alldata file
Assuming that a 0 result for those empty cells is OK, then try this:
alldata484 = alldata(4:84);
e = ~cellfun(@isempty,alldata484);
result = zeros(size(alldata484));
result(e) = cellfun(@(x)mean(x(:,1)),alldata484(e));

Sign in to comment.

Attached is the alldata file. Yes it contains some empty sheets.

Categories

Asked:

on 5 Oct 2017

Commented:

on 7 Oct 2017

Community Treasure Hunt

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

Start Hunting!