Filter löschen
Filter löschen

How to take an average every four columns?

6 Ansichten (letzte 30 Tage)
Chameleon17
Chameleon17 am 13 Feb. 2018
Kommentiert: Chameleon17 am 15 Feb. 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 Kommentar
Chameleon17
Chameleon17 am 15 Feb. 2018
Thank you for both your answers! they worked! :)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

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

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 13 Feb. 2018
Bearbeitet: Andrei Bobrov am 13 Feb. 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{:,:}';

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by