how to do average over third dimension?
9 views (last 30 days)
Show older comments
Hi all,
I have multiple 3D matrices with the dimension of 21*41*24 for each which 24 (third dimension) is 24 hours.
I wanted to calculate 6 hours average for the third dimension.
Where I am mistaken?
NHours=size(ucom,3);
NDays=NHours/6;
out = nanmean(permute(reshape(ucom,[6,NDays]),[2,1,3]),3);
Accepted Answer
Star Strider
on 26 Jul 2021
Taking a slightly shorter example, try something like this —
% ucom = randi(9,21,41,24);
ucom = randi(9, 3, 4, 24);
sz_ucom = size(ucom);
ucomr = reshape(ucom,sz_ucom(1),sz_ucom(2),[],6);
out = nanmean(ucomr,4)
The ‘out’ variable now has 4 blocks of 6-hour averages
.
8 Comments
Star Strider
on 26 Jul 2021
As always, my pleasure!
(Sorry for the delay — I was off doing other things.)
.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!