hourly average of multiple column data
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
navan
am 12 Mai 2016
Kommentiert: Star Strider
am 13 Mai 2016
I have made a code to calculate hourly average of minute data. But it works only for single column. I have multiple column of concentration (BC) data. I want hourly average of multiple columns How can i get the desired answers. pls help.
day1bc=BC(find((date==1)));
day1hour=hour(date==1);
maxday1=max(day1hour);
for i=1:maxday1
HI= find(day1hour==i);
Bcv=day1bc(HI);
mean_BC_hourly1(i,:)=mean(Bcv);
end
The input datas are:
day hour BC BC;
1 1 10 20;
1 1 20 40;
1 2 30 60;
1 2 40 80;
1 3 50 100;
1 3 60 120;
1 3 70 140;
The answer expected:
BC BC;
15 30;
35 70;
60 120;
0 Kommentare
Akzeptierte Antwort
Star Strider
am 12 Mai 2016
Use accumarray for the hours, although you would have to loop over the days:
% day hour BC BC
Mtx = [ 1 1 10 20;
1 1 20 40;
1 2 30 60;
1 2 40 80;
1 3 50 100;
1 3 60 120;
1 3 70 140;];
% ‘for’ % LOOP OVER DAYS
out(:,1) = accumarray(Mtx(:,2), Mtx(:,3), [], @mean);
out(:,2) = accumarray(Mtx(:,2), Mtx(:,4), [], @mean);
% ‘end’ % LOOP OVER DAYS
In the loop over days, replace the ‘:’ in the ‘out’ array reference with the day number.
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping 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!