Finding an average matrix from each matrix in an array

1 回表示 (過去 30 日間)
Roisin Coveney
Roisin Coveney 2021 年 7 月 13 日
コメント済み: Roisin Coveney 2021 年 7 月 14 日
I have an array of matrices, each with the same dimensions, I am looking to get one matrix which has the average value of all the matrices at each point, any advice on how to do this?
  1 件のコメント
Joseph Cheng
Joseph Cheng 2021 年 7 月 13 日
i think the matlab coding help would depend on how you've arranged your array of matrices. but over all if you have matrix of N dimensions and you want the index average across the different matrices; the simplest would be to just add all these together to a single N dimensioned matrix and divide that by total number of matrices.

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

採用された回答

Image Analyst
Image Analyst 2021 年 7 月 13 日
averageMatrix = (matrix1 + matrix2 + matrix3) / 3;
  4 件のコメント
Roisin Coveney
Roisin Coveney 2021 年 7 月 14 日
Thank you! My data isn't in a cell array it is in a structural array, when I use that code the following message comes up
Brace indexing is not supported for variables of this type.
Roisin Coveney
Roisin Coveney 2021 年 7 月 14 日
Thanks, just changed it a bit and thats working now!

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

その他の回答 (1 件)

Jan
Jan 2021 年 7 月 13 日
編集済み: Jan 2021 年 7 月 13 日
Which kind of array contains the matrices? A cell array, a numerical 3D array, a struct array? The solution depends on this detail.
A = {rand(4), rand(4), rand(4)}; % Cell array
meanA = sum(cat(3, A{:}), 3);
B = rand(3, 4, 4); % 3 4x4 matrices in numerical 3D array
meanB = reshape(sum(B, 1), 4, 4);
C(1).data = rand(4); % Struct array
C(2).data = rand(4);
C(3).data = rand(4);
meanC = sum(cat(3, C.data), 3)
  1 件のコメント
Roisin Coveney
Roisin Coveney 2021 年 7 月 14 日
the data is contained in a structural array

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

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by