필터 지우기
필터 지우기

hourly average of multiple column data

조회 수: 2 (최근 30일)
navan
navan 2016년 5월 12일
댓글: Guillaume 2016년 5월 12일
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
The answer expected:
con1avg con2avg
15 30
35 70
60 120
  댓글 수: 2
Guillaume
Guillaume 2016년 5월 12일
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
Star Strider 2016년 5월 12일

댓글을 달려면 로그인하십시오.

답변 (1개)

Guillaume
Guillaume 2016년 5월 12일
편집: Guillaume 2016년 5월 12일
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
navan
navan 2016년 5월 12일
편집: navan 2016년 5월 12일
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
Guillaume 2016년 5월 12일
colstoaverage = 3:12;
subs = [repmat(destrow, numel(colstoaverage), 1), repelem((1:numel(colstoaverage))', numel(destrow))];
hourlymean = accumarray(subs, reshape(m(:, colstoaverage), [], 1), [], @mean)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by