# Calculate mean of matrix for specific interval

11 vues (au cours des 30 derniers jours)
Pelle Adema le 2 Sep 2021
Commenté : Pelle Adema le 2 Sep 2021
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.
Thanks
%% 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.
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

Hi Pelle,
you need to index your variable DEM correctly:
DEM_mean2 = mean(DEM(11:110,:));
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Pelle Adema le 2 Sep 2021
Thanks for your answer. This was indeed the problem and your solution gives me what I need.
Best,
Pelle

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by