# Mean of the third dimension

45 visualizaciones (últimos 30 días)
desert_scientist90 el 23 de Oct. de 2019
Comentada: John D'Errico el 24 de Oct. de 2019
Hi I an new to matlab and learning thru practice and patience. I have a data set with for precipitation containing data for 37 years. X=141, Y=41 and T=37. I want to get the mean per year (37) I tried the following code but on my dataset I ended uo with 71 observations. Why this is happening? If I only want the mean per year? Thanks in advance.
avg3=nanmean(rain(:,:,3));
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

John D'Errico el 23 de Oct. de 2019
Editada: John D'Errico el 23 de Oct. de 2019
Not entirely sure what you are asking.
Do you want to compute the mean for each year for each combination of X and Y? That would result in a 141x41 array.
MeanRain = mean(rain,3);
Do you want to compute the mean over all X and Y, resulting in one element per year, so a vector of length 37? Here, I'd just reshape the rain matrix to be a 141*41 by 37 array, so 2-dimensional. Then take the mean down the columns of that array, so on the first dimension. The result of the computation below would be a 1x37 vector.
MeanRain = mean(reshape(rain,[],37),1);
Either could be what you are asking.
##### 2 comentariosMostrar NingunoOcultar Ninguno
desert_scientist90 el 23 de Oct. de 2019

Sorry if I was not clear enough. My goal is to achieve one mean ( point) per year. In total I want 37 averages one per year. After that I want to calculate the zscore per year to be able to do a time series.

John D'Errico el 24 de Oct. de 2019
Then you just use the second option I gave.

Iniciar sesión para comentar.

### Más respuestas (1)

TADA el 23 de Oct. de 2019
try this:
avgPerYear = nanmean(rain, [1,2]);
that would generate an inconvenient 3rd dimention vector
so you can reshape it into a row\column vector:
avgPerYear = reshape(nanmean(rain, [1,2]), size(rain,3), 1, 1); % column vector output
avgPerYear = reshape(nanmean(rain, [1,2]), 1, size(rain,3), 1); % row vector output
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Categorías

Más información sobre Time Series en Help Center y File Exchange.

### Community Treasure Hunt

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

Start Hunting!

Translated by