Yearly average but keeping matrix dimensions

1 view (last 30 days)
redlush
redlush on 9 Mar 2020
Answered: the cyclist on 10 Mar 2020
Hello
I am trying to compute the yearly average of a 365x121x240 array.
What I used to do before is:
average=nanmean(mat,1);
squeezenan=squeeze(mat,1);
This will give me the average but in a matrix with dimensions 121x240.
But in this case, I want to take the average of the 365 days, while keeping the new matrix dimensions as 365x121x240.
  2 Comments
the cyclist
the cyclist on 9 Mar 2020
For the moment, let's ignore the 3rd dimension.
Suppose matrix is this:
mat = [1 2;
4 5];
The mean along the 1st dimension is
average = [2.5 3.5];
How would you have wanted the 1st dimension treated, if you had wanted it to stay length 2? Did you want
average = [2.5 3.5
2.5 3.5];
?
redlush
redlush on 10 Mar 2020
Yes, I would essentially just repeat the average.

Sign in to comment.

Answers (1)

the cyclist
the cyclist on 10 Mar 2020
repavgmat = repmat(mean(mat,1),[size(mat,1) 1 1]);

Categories

Find more on Get Started with MATLAB 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!