Plotting Timetable in Matlab
177 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Anders Vigen
am 19 Feb. 2021
Beantwortet: cui,xingxing
am 3 Jul. 2024 um 1:34
load_demand=readtable("Demand_timeseries_1hourResolution.xlsx");
TR=table2timetable(load_demand);
Time=TR({'05-05-2020','05-06-2020 00:00:00'},:);
T = timetable2table(Time)
x=T{2:end,1}
y=T{2:end,3}
plot(x,y)
I am trying to plot my timetable, but it will only plot a single point for it. So instead of plotting the whole data series for 'Time' it only plots for the first point. I tried converting it to an array but that didn't work out too well. Hopefully somebody can help me
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (2)
Duncan Po
am 19 Feb. 2021
The line:
Time=TR({'05-05-2020','05-06-2020 00:00:00'},:);
only extracts two rows from TR. So Time only has two rows. Then when you define x and y, the first row is discarded, so x and y are scalar. That's the reason only one point is plotted.
If you want the entire series, just use the entire TR instead of extracting only two rows.
17 Kommentare
Walter Roberson
am 21 Feb. 2021
The representation of hours turned out to be strange :(
load_demand = readtable("Demand_timeseries_1hourResolution.xlsx");
h = cellfun(@(S) sscanf(S, '%d', 1), load_demand.Hours);
load_demand.Time = load_demand.Date + hours(h);
mask = isbetween(load_demand{:, 1}, datetime('2020-05-05'), datetime('2020-05-06')-minutes(1));
x = load_demand.Time(mask);
y = load_demand{mask,3};
plot(x, y);
cui,xingxing
am 3 Jul. 2024 um 1:34
Hi, @Anders Vigen
Here I give a Example:
tt = datetime+years(1:10); % 比如从现在时间开始,连续十年时间点
y = rand(10,1);
TT = timetable(tt',y)
plot(TT.Time,y,LineWidth=2)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Calendar finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!