Finding an average matrix from each matrix in an array

3 views (last 30 days)
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 Comment
Joseph Cheng
Joseph Cheng on 13 Jul 2021
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.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 13 Jul 2021
averageMatrix = (matrix1 + matrix2 + matrix3) / 3;
  4 Comments
Roisin Coveney
Roisin Coveney on 14 Jul 2021
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.

Sign in to comment.

More Answers (1)

Jan
Jan on 13 Jul 2021
Edited: Jan on 13 Jul 2021
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)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!