# hourly average of multiple column data

1 Ansicht (letzte 30 Tage)
navan am 12 Mai 2016
Kommentiert: Guillaume am 12 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 data. How can i get the desired answers. pls help.
day1hour=hour(date==1);
day1bc=BC(find(hour(date==1)));
maxday1=max(day1hour);
for i=1:max(day1hour)
ll= find(day1hour==i);
fffff=BC(ll);
mean_BC_hourly1(i,:)=mean(fffff);
end
The input datas are:
day hour Con 1 con2
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
con1avg con2avg
15 30
35 70
60 120
##### 2 KommentareKeine anzeigenKeine ausblenden
Guillaume am 12 Mai 2016
Note that none of the find in your code are necessary. They just slow down the processing.
day1bc = BC(hour(date == 1))); %works just as well
Star Strider am 12 Mai 2016

Melden Sie sich an, um zu kommentieren.

### Antworten (1)

Guillaume am 12 Mai 2016
Bearbeitet: Guillaume am 12 Mai 2016
m = [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]
[dayhour, ~, destrow] = unique(m(:, [1, 2]), 'rows');
subs = [repmat(destrow, 2, 1), repelem([1;2], numel(destrow))];
hourlymean = accumarray(subs, reshape(m(:, [3, 4]), [], 1), [], @mean);
array2table([dayhour, hourlymean], 'VariableNames', {'day', 'hour', 'con1avg', 'con2avg'})
Or the new split apply workflow introduced in R2015b
##### 2 KommentareKeine anzeigenKeine ausblenden
navan am 12 Mai 2016
Bearbeitet: navan am 12 Mai 2016
Wow. Wonderful. Thanks a ton Guillaume. It is what i wanted really. It is a great help. thank you once again :) But if i have around 10 concentration how should i modify the code ?
Guillaume am 12 Mai 2016
colstoaverage = 3:12;
subs = [repmat(destrow, numel(colstoaverage), 1), repelem((1:numel(colstoaverage))', numel(destrow))];
hourlymean = accumarray(subs, reshape(m(:, colstoaverage), [], 1), [], @mean)

Melden Sie sich an, um zu kommentieren.

### 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