how can i take average of matrices in a cell?

3 ビュー (過去 30 日間)
Joseph
Joseph 2018 年 3 月 15 日
コメント済み: Joseph 2018 年 3 月 15 日
Hi, i have a cell array X{16*12} in which each element of cell X is a 3d array. now I want to take the average of all the matrices in the row which will result in another cell array Y{1,12} (each element of Y cell array consist of 3d array). can anyone please help me with this.
thank you
  5 件のコメント
Joseph
Joseph 2018 年 3 月 15 日
編集済み: Joseph 2018 年 3 月 15 日
Thank you so much Bob, even though your answer wasn't that I wanted, but it gave me the idea how to do it. i was looking for the averaging of the entire matrices in the for each column of the cell X(16,12). which will result in another cell like resultcell(1,12) in which each element of resultcell is a 3D array. something like following.
for numbercol = 1:size(X,2)
summation = 0; % Reset summation value to 0 for next element
for numbermats = 1:size(X,1) % Loop through all matrices in first
column
summation = summation + X{numbermats,numbercol}; % Add next
matrix element
end % Numbermats for
resultcell{1,numbercol} = summation/numbermats; % save avarage of each column of the cell X in the cell resultcell
end;
Bob Thompson
Bob Thompson 2018 年 3 月 15 日
Cool, glad I could help. I deliberately avoided putting the answer into a cell matrix since I figured it would just be numbers and a cell matrix of numbers is just extra complicated, but you do what you need to.

サインインしてコメントする。

採用された回答

Andrei Bobrov
Andrei Bobrov 2018 年 3 月 15 日
A - your cell array
one variant
[m,n,k] = size(A{1});
[h,l] = size(A);
A1 = reshape(cat(3,A{:}),m,n,k,h,l);
out = squeeze(num2cell(mean(A1,4),1:3))';
  1 件のコメント
Joseph
Joseph 2018 年 3 月 15 日
Thanks for your Answer Andrei, this works too.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by