Make histogram for array of datetimes
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
dormant
am 16 Mai 2024
Kommentiert: dormant
am 16 Mai 2024
I have a datetime array:
trigDatetime =
1273×1 datetime array
2024-04-30 01:15:34
2024-04-30 01:19:27
2024-04-30 02:20:49
2024-04-30 03:48:50
2024-04-30 03:49:49
How can I calculate the frequency of occurence between two dates for a bin width of an integer number of hours (1, 2, 3, 4, 6 or 12)?
0 Kommentare
Akzeptierte Antwort
Steven Lord
am 16 Mai 2024
Let's make some sample dates and times.
n = 10;
T = datetime('today');
d = T + ...
hours(randi([-24, 24], n, 1)) + ...
minutes(randi(60, n, 1)) + ...
seconds(randi(60, n, 1))
histogram(d, BinWidth = hours(1))
By default this isn't going to show enough ticks on the X axis for my taste. This adds a few more.
xticks(T + hours(-24:4:24))
Weitere Antworten (1)
William Rose
am 16 Mai 2024
@dormant, I am switching my comment to be an answer which is what I had intended.
First, let's create an array of 1273 random date times in the first week of April:
dt0=datetime(['1-Apr-2024']); % start time
D=duration(0,0,60*60*24*7*rand(1273,1)); % 1273 random durations up to 1 week
dt=dt0+D; % random date times startng at dt0
fprintf ('Datetime range: %s to %s.\n',min(dt),max(dt))
Now make a histogram with 12 hour bin width
histogram(dt,BinWidth=duration(12,0,0))
You can adjust for bin width=1, 3, 6 hours. Good luck.
Siehe auch
Kategorien
Mehr zu Data Distribution Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!