Add a datestr to duration data to get in datestr format

46 vues (au cours des 30 derniers jours)
Jason
Jason le 18 Déc 2025 à 18:28
Commenté : Jason le 21 Déc 2025 à 9:22
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

Réponse acceptée

Steven Lord
Steven Lord le 18 Déc 2025 à 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

Plus de réponses (1)

Walter Roberson
Walter Roberson le 20 Déc 2025 à 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.

Catégories

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

Produits


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by