Find monthly mean from daily data of same year using find function

1 view (last 30 days)
Hi I have a spreadsheet contains 1 year data and I want to find monthly mean column1 contains dd-mmm-yyyy And column2 contains data

Accepted Answer

KSSV
KSSV on 10 Jul 2019
REad about datevec. This will give you years, months and days. Using the months and your data you can find mean. Let thedates be your dates and A be your data.
[y,m,d] = datevec(thedates) ;
iwant = zeros(12,1) ;
for i = 1:12
iwant(i) = mean(A(m==i)) ;
end
  4 Comments
Guillaume
Guillaume on 10 Jul 2019
Well, I'm sorry to say but you're teaching beginners bad practices. As I said, your code will not work properly if the there is more than one year in the data.
And your code cannot be easily changed to aggregate the data per quarter or per week. Using retime, it's as trivial as specifying 'quarterly' or 'weekly' instead of 'monthly'. And the intent is of course much clearer.
KSSV
KSSV on 10 Jul 2019
As the use said..the data is of one year.....quickly I gave that....

Sign in to comment.

More Answers (1)

Guillaume
Guillaume on 10 Jul 2019
The easiest way:
data = readtimetable('C:\somewhere\somefile.xlsx'); %may need some adjustement depending on the actual format of the line
monthlydata = retime(data, 'monthly', 'mean');
Done!

Categories

Find more on Dates and Time in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!