MATLAB Answers

How to pick the right month?

1 view (last 30 days)
gjashta
gjashta on 30 Apr 2019
Commented: gjashta on 5 May 2019
The data file covered 13 years from 2003-2016.
But in the data there is no date just the values of prices and demand.
So, can you help me to write a simple code to pick the date,
for example the data of march for all the years?? Then how to calculate the mean and the std for each month?

  2 Comments

Walter Roberson
Walter Roberson on 1 May 2019
It would have been better if you had left the information that the data file covered 13 years from 2003: that would have provided context for other people reading the question hoping to learn from it.
Remember that we are not providing free private consulting service: we volunteer so that everyone can learn from what we say, by reading the questions and answers both.
gjashta
gjashta on 1 May 2019
Sorry for my mistake!

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 30 Apr 2019
Price = Data1(:,1);
Demand = Data1(:,2);
tv = (datetime([2003,1,1]):datetime([2015,12,31])).';
[Y,M,D] = ymd(tv);
DT = timetable(Price, Demand, Y, M, D, 'RowTimes', tv);
Now you can do tests such as
MarchData = DT(DT.M==3,:);
and you can also use timerange() selectors, https://www.mathworks.com/help/matlab/ref/timerange.html
and you can also do calculations such as
retime(DT, 'monthly', 'sum')

  4 Comments

Show 1 older comment
Walter Roberson
Walter Roberson on 1 May 2019
See rmmissing()
I guess they are being added in automatically by the retime('monthly') .
There are some alternate approaches once you have selected the data, such as using findgroups() and splitapply()
gjashta
gjashta on 5 May 2019
How can I substract the mean of march for each year from the daily demand of march? Two vectors with defferent length.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!