How to take an average every four columns?

2 vues (au cours des 30 derniers jours)
Chameleon17
Chameleon17 le 13 Fév 2018
Commenté : Chameleon17 le 15 Fév 2018
Hi, I have seen similar questions but I am getting stuck altering the code for what I want. I have a matrix of (64 x 18144), each row is a met station and each column is a 15 minute data measurement - I want to convert this to hourly data for each station - so I want to have an output matrix of (64 x 4536). I have seen some solutions but I don't have the 'tools' they require. Any help/ideas would be very much appreciated! :)
  1 commentaire
Chameleon17
Chameleon17 le 15 Fév 2018
Thank you for both your answers! they worked! :)

Connectez-vous pour commenter.

Réponse acceptée

James Tursa
James Tursa le 13 Fév 2018
x = your 64x1844 matrix
result = reshape(mean(reshape(x.',4,[])),size(x,2)/4,[]).';

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 13 Fév 2018
Modifié(e) : Andrei Bobrov le 13 Fév 2018
A - your matrix (64 x 18144)
B = A.';
[m,n] = size(B);
t = minutes((0:m)'*15);
Tb = array2timetable(B,'RowTimes',t);
Tout = retime(Tb,'hourly','mean');
out = Tout{:,:}';

Catégories

En savoir plus sur Logical 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