how to calculating monthly average?

조회 수: 2 (최근 30일)
Lilya
Lilya 2016년 5월 8일
댓글: Lilya 2016년 5월 13일
hi all I just want to be sure about this small monthly averaging code
I=1;
for i=1: length(x)/30;
y(i)=mean(x(I:I+29));
L(i)=min(x(I:I+29));
U(i)=max(x(I:I+29));
I=I+29;
end
where x is data matrix (365 day)
thank you
  댓글 수: 4
Star Strider
Star Strider 2016년 5월 8일
Well, some of the data, but not what we need to do what you want with it.
Without knowing the times (at least months-days-years, in some format) at which these are collected, it’s not possible to separate them by month.
Lilya
Lilya 2016년 5월 8일
Thank you for help

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

채택된 답변

Image Analyst
Image Analyst 2016년 5월 8일
Try this:
dailyValues = rand(1,365); % Sample data
daysInMonths = [31,28,31,30,31,30,31,31,30,31,30,31]
monthEnds = [0, cumsum(daysInMonths)]
for m = 1 : length(monthEnds)-1
firstDay = monthEnds(m)+1;
lastDay = monthEnds(m+1);
fprintf('For month #%d, the first day = %d and the last day = %d\n',...
m, firstDay, lastDay);
monthlyAverage(m) = mean(dailyValues(firstDay:lastDay));
end
% Echo to command window.
monthlyAverage
Of course you need to take leap years into account, which I didn't do.
  댓글 수: 7
Image Analyst
Image Analyst 2016년 5월 13일
JanuaryDailyAmounts = dailyValues(1:31);
FebruaryDailyAmounts = dailyValues(32:59);
MarchDailyAmounts = dailyValues(60:90);
and so on for months ending at rows 120 151 181 212 243 273 304 334 365.
You will then have 12 matrices.
Lilya
Lilya 2016년 5월 13일
I appreciate your help. Thank you.

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

추가 답변 (1개)

Steven Lord
Steven Lord 2016년 5월 12일
Find the month number (either directly from the file or using some of the tools associated with datetime objects then use the month numbers as the subscripts in a call to accumarray, specifying @mean as the accumulation function.
numRows = 30;
X = [randi(12, numRows, 1), randi(100, numRows, 1)] % Column 1 is month, column 2 is data
Y = accumarray(X(:, 1), X(:, 2), [], @mean)
  댓글 수: 1
Lilya
Lilya 2016년 5월 13일
I appreciate your help

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

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by