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!

Réponses (2)

James Tursa
James Tursa le 5 Oct 2017
Modifié(e) : James Tursa le 5 Oct 2017
result = cellfun(@(x)mean(x(:,1)),alldata(4:84));

9 commentaires

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!
James Tursa
James Tursa le 5 Oct 2017
Modifié(e) : James Tursa le 5 Oct 2017
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));

Connectez-vous pour commenter.

AIDA AMROUSSIA
AIDA AMROUSSIA le 7 Oct 2017

0 votes

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

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by