Increment dates using for loop
Show older comments
I'm trying to fill a variable sized datetime array. I then want the declared datetime value to fill the first 3 elements before incrementing by one to fill the next three.This process repeats until the desired sized element is reach. See current output & desired output.
Code:
samples = input("Number of Samples to Generate: ");
DateBuilt = repmat(datetime(0,0,0),samples,1);
t = datetime(2018,1,1);
DateBuilt(1) = t
for i=1:samples
if i <= 3
DateBuilt(i) = t;
else
t = t + 1;
DateBuilt(i) = t;
end
Current Output:
Number of Samples to Generate: 14
DateBuilt =
14×1 datetime array
01-Jan-2018
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
30-Nov--0001
Desired Output:
Number of Samples to Generate: 14
DateBuilt =
14×1 datetime array
01-Jan-2018
01-Jan-2018
01-Jan-2018
02-Jan-2018
02-Jan-2018
02-Jan-2018
03-Jan-2018
03-Jan-2018
03-Jan-2018
04-Jan-2018
04-Jan-2018
04-Jan-2018
05-Jan-2018
05-Jan-2018
5 Comments
madhan ravi
on 9 Feb 2019
Edited: madhan ravi
on 9 Feb 2019
Please explicitly state your desired output , so there is no guessing.
madhan ravi
on 9 Feb 2019
Editing a question after someone has answered is not encouraged in this forum , it makes the answer pointless!
CM
on 9 Feb 2019
madhan ravi
on 9 Feb 2019
Edited: madhan ravi
on 9 Feb 2019
Why in your desired output the last date has only repeated twice , any reason for it?
CM
on 9 Feb 2019
Accepted Answer
More Answers (1)
Stephen23
on 9 Feb 2019
0 votes
>> D = datetime('01-Jan-2018');
>> N = 14;
>> G = 3;
>> V = D + caldays(0:ceil(N/G)-1).';
>> V = repelem(V,G);
>> V = V(1:N)
V =
01-Jan-2018
01-Jan-2018
01-Jan-2018
02-Jan-2018
02-Jan-2018
02-Jan-2018
03-Jan-2018
03-Jan-2018
03-Jan-2018
04-Jan-2018
04-Jan-2018
04-Jan-2018
05-Jan-2018
05-Jan-2018
Categories
Find more on Loops and Conditional Statements 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!