- Create a cell array that is a subset of your whole array with FinalResult(:, 4). Note that I use () instead of {}. The former returns a cell array, the latter a list of elements.
- Iterate over that subset and extract element (1, 2) of each matrix, with cellfun.
- get the mean of the elements returned by cellfun
Mean value in a cell array
2 次查看(过去 30 天)
显示 更早的评论
Hi!
I have a 16x8 cell (containing 6x11 cells) with the name FinalResult. I now would like to calculate the mean value of FinalResult{1:16,4}(1,2) and have tried it with
cellfun(@mean,FinalResult{1:16,4}(1,2))
but this will give me the error message "Bad cell reference operation". Where is the mistake?
Thank you in advance for any help.
0 个评论
采纳的回答
Guillaume
2014-10-11
编辑:Guillaume
2014-10-11
I'm assuming that the cell array contains matrices not more cell arrays, that is the 6x11 are actually matrices. In which case, this would work:
mean(cellfun(@(c) c(1,2), FinalResult(:, 4)));
What it does is:
更多回答(1 个)
SK
2014-10-11
编辑:SK
2014-10-11
Put square brackets around the cellarray contents like:
M = [FinalResult{1:16,4}]
m = mean(M,2);
Putting the square brackets converts it into a matrix.
3 个评论
SK
2014-10-11
OK, I didn't read the question properly.
In that case:
C = FinalResult(1:16, 4);
D = [C{:}];
E = reshape(D, [6,11,16]);
M = cell2mat(E);
Mx = mean(M,3);
Mx(i,j) should then contain the mean of the index (i,j).
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!