- 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
조회 수: 6 (최근 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!