Spread monthly data into days

24 vues (au cours des 30 derniers jours)
Ajay Gupta
Ajay Gupta le 24 Sep 2021
Commenté : Ajay Gupta le 27 Sep 2021
I am new to Matlab and I am trying to spread monthly data into a table that is indexed daily. For example:
Date Data
01/1982 0.15
02/1982 -0.02
03/1982 -0.05
What I would like to achieve...
Date Data
1/1/1982 0.15
1/2/1982 0.15
1/3/1982 0.15
1/4/1982 0.15
1/31/1982 0.15
2/1/1982 -0.02
2/2/1982 -0.02
2/3/1982 -0.02
2/4/1982 -0.02
I other words, I am trying to convert a table with 240 rows (20 years in months) to one with 7300 rows (20 years in days).
Is this easily doable in matlab? Greatly appreciate any advice.

Réponse acceptée

Kelly Kearney
Kelly Kearney le 25 Sep 2021
One way to do the expansion... convert your monthly dates to the first of each month, then use dateshift to check which month each of your days match:
% Some placeholder data... you'll have to read your tables as appropriate
tmon = datetime(1982, 1:3, 1);
ymon = [0.15 -0.02 -0.05];
tday = datetime(1982,1,1) + days(0:89);
% Match up days to months
[~,loc] = ismember(dateshift(tday, 'start', 'month'), tmon);
yday = ymon(loc);
  3 commentaires
Kelly Kearney
Kelly Kearney le 27 Sep 2021
Can you clarify how your data is stored? Is it in an external file?
Ajay Gupta
Ajay Gupta le 27 Sep 2021
It is not external. Its an array created by my code. (241x1000 double) trying to get to 7300x1000 double.
I think I was able to resolve by adding:
yday = zeros(7300,1000);
yday(:,:) = ymon(loc,:);
Does this make sense?
Thanks again!

Connectez-vous pour commenter.

Plus de réponses (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov le 24 Sep 2021
You can import your data and easily convert them as you need using importdata() - see help DOC and convert date data into numbers using datenum() - see help DOC
Good luck
  1 commentaire
Ajay Gupta
Ajay Gupta le 26 Sep 2021

Connectez-vous pour commenter.


En savoir plus sur Dates and Time dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by