Add a datestr to duration data to get in datestr format

47 views (last 30 days)
Hi, I have a graph where Im plotting on the x-axis time by using tic then in a loop making measurements 'Y' and performing tend=toc
I dor ecord the actual date / time at the start too.
dt = datestr(now,'dd-mmm-yyyy HH-MM-SS'); %get current dateTime
Once my loop has finished an I have a plot of all the Y's against their time of measurements (starting at 0), how can I add the "duration" onto the actual datestr, so I can have on the x-axis the actual date time.
thanks
Jason

Accepted Answer

Steven Lord
Steven Lord on 18 Dec 2025 at 18:46
Rather than using date strings or serial date numbers, use datetime arrays.
x = 1:10;
dt = datetime(2025, 12, x);
y = x.^2;
plot(dt, y, 'o-')
If you're adding points to something like an animatedline iteratively, that works too.
figure
h = animatedline(dt(1), y(1), LineStyle = '-', Marker = 'o');
for k = 2:numel(y)
addpoints(h, dt(k), y(k));
end

More Answers (1)

Walter Roberson
Walter Roberson on 20 Dec 2025 at 19:39
Answering the question as given
NOW = datetime('now');
%here accumulate array of tic/toc values into variable DURATIONS.
%...
dt = datestr(NOW + DURATIONS / (24*60*60), 'dd-mmm-yyyy HH-MM-SS');
However, chances are high that you do not want to plot all DURATIONS values. You probably want something more like
NOW = datetime('now');
%here accumulate array of tic/toc values into variable DURATIONS.
%...
dt = NOW + DURATIONS / (24*60*60);
plot(dt, VALUES);
datetick('x', 'dd-mmm-yyyy HH-MM-SS')
That said... working with datetime() values is typically much nicer.

Categories

Find more on Dates and Time in Help Center and File Exchange

Products


Release

R2024b

Community Treasure Hunt

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

Start Hunting!