Avg over a 3d array?

1 vue (au cours des 30 derniers jours)
Kate
Kate le 12 Juil 2013
Hi there!
So I have monthly gridded datasets in lat/lon/time(monthly): Example:
>> whos KoppenD_airT
Name Size Bytes Class Attributes
KoppenD_airT 360x720x361 374284800 single
>> whos KoppenDsa_airT
Name Size Bytes Class Attributes
KoppenDsa_airT 360x720x361 374284800 single
>> whos KoppenDsb_airT
Name Size Bytes Class Attributes
KoppenDsb_airT 360x720x361 374284800 single
I need to create climatologies of these regions so that I can plot monthly changes in temperature over my 30 year climate period. What is the best way to do this?
I need to aggregate my monthly data over the entire region to a single value so that I can plot all of my months.
Here's one attempt I've made that isn't working:
idx=find(Dsa);
for ii=idx
y=ind2sub(size(KoppenDsa_airT),ii);
x=squeeze(KoppenDsa_airT(y,:));
end
I get:
Index exceeds matrix dimensions.
Thanks!

Réponse acceptée

Matt J
Matt J le 12 Juil 2013
Modifié(e) : Matt J le 12 Juil 2013
aggregate my monthly data over the entire region to a single value
Does "aggregate" mean average? If so, this might be what you want,
mean(reshape(KoppenDsa_airT,[],361),1);
  4 commentaires
Kate
Kate le 12 Juil 2013
I realized my problem, I have a mask on my data so that non Koppen Dsa's are zero, I need to turn those into NaN's, thanks again for your help!
Matt J
Matt J le 12 Juil 2013
If you turn them into NaNs, you would probably have to use nanmean()

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by