how to select range of dates

1 view (last 30 days)
rohail khan
rohail khan on 11 Apr 2018
Commented: Peter Perkins on 13 Apr 2018
I have stock data of 10 years with two columns.One is the stocks which is numeric and the other is dates which are in datetime format.I converted datetime to Numeric also. I want to calculate mean for each year using mean(stock) formula. But I dont know how can I select the data for each year separately? The days are also not continuous as there are holiday gaps How can I get the range of data for one year e.g like from jan 1 ,2007 to dec 31 2007 and then get its mean

Accepted Answer

per isakson
per isakson on 11 Apr 2018
Edited: per isakson on 11 Apr 2018
Hint:
accumarray( t.Year-2007+1, stock, [], @mean )
where t is a datetime object
  2 Comments
rohail khan
rohail khan on 12 Apr 2018
thank you so much.You are amazing
Peter Perkins
Peter Perkins on 13 Apr 2018
There are any number of ways to do this. accumarray is old school. full(sparse(...)) would have been even older school. More beginner-friendly ways include findgroups/splitapply, and varfun with a grouping variable. And in R2018a, groupsummary.

Sign in to comment.

More Answers (0)

Categories

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

Community Treasure Hunt

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

Start Hunting!