Average of specific columns from cells in cell array
Show older comments
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)
James Tursa
on 5 Oct 2017
Edited: James Tursa
on 5 Oct 2017
result = cellfun(@(x)mean(x(:,1)),alldata(4:84));
9 Comments
AIDA AMROUSSIA
on 5 Oct 2017
AIDA AMROUSSIA
on 5 Oct 2017
James Tursa
on 5 Oct 2017
Edited: James Tursa
on 5 Oct 2017
You said (I think) that alldata had at least 84 elements. What does this show:
size(alldata)
AIDA AMROUSSIA
on 6 Oct 2017
AIDA AMROUSSIA
on 6 Oct 2017
Andrei Bobrov
on 6 Oct 2017
Please attach here your alldata.
James Tursa
on 6 Oct 2017
Are some of the cell elements empty?
AIDA AMROUSSIA
on 7 Oct 2017
James Tursa
on 7 Oct 2017
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));
AIDA AMROUSSIA
on 7 Oct 2017
0 votes
Categories
Find more on Data Type Conversion 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!