How to find the average of 3D matrices in a cell?
3 views (last 30 days)
Show older comments
Hello everyone,
I wish to average the 3D matrices in a cell array?
Each is a 2048 by 2048 by 100 matrix, which looks like this:
What I wish is to average each 3D matrix over the z axis (over 100), as shown below.
This will eventually lead to 1 by 3 cell, but this time, only 2048 by 2048 pixels.
The code that I have used is as follows:
for iB=1:numel(B)
meanB{iB}=mean(B{iB},3); % B is the 3D matrix
end
I have cross-cheked the values, but have found that I am not getting the right values. They are much smaller than expected.
Can anyone please help with this?
Kind regards,
Anshul
0 Comments
Answers (1)
Walter Roberson
on 1 Dec 2022
The code you already have should work. Or you could use the more compact
meanB = cellfun(@(b) mean(b,3), B, 'uniform', 0);
If the values are much smaller than expected, then re-check by commanding
format long g
and then examining the contents at the command line (not in the variable browser.)
2 Comments
Walter Roberson
on 2 Dec 2022
That looks like it would work to create a 1 x something cell array. K would need to be varying from 1 to 100 .
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!