
Change the format of an output figure of 'findchangepts'-function into datetime format.
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sebastian
am 2 Jul. 2020
Beantwortet: Seth Furman
am 28 Okt. 2020
Hi!
When I use a function such as
findchangepts(data.val)
it automatically produces a figure. Unfortunately, the x-axis just shows sample numbers as it is not possible to, for example, use a timetable as input...
But I want the figure in datetime format. Right now, it is very inconvenient to change the figure into a dateformat:
[BPTipt, BPTresidual] = findchangepts(data.val) % my data gives me 2 change points
findchangepts(data.val)
h = get(gca, 'Children');
%% define datenums for Children's xdata:
t = datenum(data.Time(BPTipt));
t1 = [t(1) t(1) NaN t(2) t(2) NaN]; % get the format to set children xData
t2 = [datenum(data.Time(1)) t(1) NaN t(1) t(2) NaN t(2) datenum(data.Time(end)) NaN]; % get the format to set children xData
%% set new datenums as xdata for Children:
set(h(3,1),'xdata',datenum(data.Time));
set(h(2,1),'xdata',t2);
set(h(1,1),'xdata',t1);
datetick('x','mmm yy','keeplimits','keepticks');
and that way I still don't have datetime format...
My questions:
- Is there an shorter easier way to get the output figure in a datetime format?
- If not, how can i change a figure with datenums as x-data to a datetime format?
Thanks!
0 Kommentare
Akzeptierte Antwort
Seth Furman
am 28 Okt. 2020
This same figure can be created with the relevant x data by using the plot, title, and xline commands.
load train
t = timetable(linspace(datetime(2020,1,1),datetime(2020,1,2),length(y))',y);
ipt = findchangepts(t.y,'MaxNumChanges',4,'Statistic','rms');
plot(t.Time,t.y)
title(sprintf('Number of changepoints = 4\nTotal log weighted dispersion = -33002.6521'));
xline(t.Time(ipt),'Color',[0.4660 0.6740 0.1880]);

0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Axis Labels 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!