Calculate mean of matrix for specific interval

9 views (last 30 days)
Hi all,
I have elevation data stored in a 121x721 matrix called DEM.
I want to calculate 2 things:
1) the cross-sectionally averaged mean elevation along the flume. i.e. the mean elevation per column of matrix DEM. (This works OK)
2) The cross-sectionally averaged mean elevation along the flume for DEM(11:110). So without the edges. (Does not work yet)
My code works for the first but not for the second thing I try to calculate.
See the minimal working example below to see the code I used.
What I need is a 1x721 array of the mean value of columns in DEM between 11 and 110.
Hope this makes sense and someone can point me in the right direction.
%% MWE
% DEM contains a digital elevation model (elevation data).
DEM = rand(121,721);
% calcultate DEM means for full DEM
DEM_mean = mean(DEM); % this returns a 1x721 array which is what I need
% calculate DEM means for specific interval of DEM
DEM_mean2 = mean(DEM,11:110); % this returns a 121x721 matrix, but I need a 1x721 array like above.

Accepted Answer

Konrad on 2 Sep 2021
Hi Pelle,
you need to index your variable DEM correctly:
DEM_mean2 = mean(DEM(11:110,:));
Best, Konrad
  1 Comment
Pelle Adema
Pelle Adema on 2 Sep 2021
Hi Konrad,
Thanks for your answer. This was indeed the problem and your solution gives me what I need.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by