creating a sub date time array

I have a datetime array conisisting of dates from the 1980s till recent. it is stored in a date time array. how do i sperate the datetime array into years. for example i want a seperate array for 1980 till 1990 so on and so forth.
Capture.PNG
my data looks like this.

 Accepted Answer

Adam Danz
Adam Danz on 17 Dec 2019
Edited: Adam Danz on 18 Dec 2019
This 2-step process is done in 1 line.
  1. Round the year of the datetime vector to the decade (1999 becomes 1990s)
  2. Use [G,ID] = findgroups(A) to group the datetime vector by decades.
% Create demo data
dt = (datetime(1981,12,01) : hours(4) : datetime('now'))';
% Assign groups to datetime vector; group by decade
[decadeGroup, decade] = findgroups(floor(year(dt)/10)*10);
decade is a list of decades in your datetime vector.
decadeGroup are positive integers 1:n for n-decades of data.
For example to isolate the 1990s,
NinteenNinties = dt(decadeGroup==find(decade==1990));

More Answers (0)

Categories

Asked:

on 16 Dec 2019

Edited:

on 18 Dec 2019

Community Treasure Hunt

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

Start Hunting!