- 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
3 ビュー (過去 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!