How to combine 4 columns of a table into one new variable and plot it with respect to time?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Mark Lupas
am 13 Apr. 2020
Bearbeitet: Mark Lupas
am 13 Apr. 2020
I am reading from a file that has 7 columns. I imported it into a table, and I converted T.Var1 into UTC hh:mm:ss:FFF time. T.Var2, T.Var3, T.Var4 and T.Var5 all need to be combined into the variable "source" so I can plot it against timeUTC. Then I would like to have the user change the range of source that is being plotted, where they would be able to chose the range of T.Var2 to be from x to y for example.
clear
clc
close all
[FileName,PathName]=uigetfile(':','Select the LYLOUT file');
T=readtable(fullfile(PathName,FileName));
timeUTC = (datestr(seconds(T.Var1),'HH:mm:ss:FFF'));
sizeTimeUTC = size(timeUTC);
figure('units','normalized','outerposition',[0 0 1 1]);
plot(size,'b')
NumTick = 10;
set(gca,'XTickLabelRotation',45);
xticks=linspace(1,sizeTimeUTC(1),NumTick);
set(gca,'XTick',xticks);
set(gca,'XTickLabel',timeUTC);
How would I go about doing this?
EDIT: Here are the first few rows of the table as requested.
- 9601.762212787 33.70270888 -85.26950474 311276.18 0.04 24.4 0xa51
- 9601.833916448 33.57688907 -82.95670785 183351.65 2.57 23.5 0x358
- 9604.167990668 33.69930560 -83.95209122 38865.36 0.69 9.5 0xb18
- 9604.906035077 34.16707482 -85.25531467 12077.34 1.93 13.3 0x358
- 9605.012282662 34.20090438 -85.37965820 7081.78 3.71 18.4 0x368
2 Kommentare
Adam Danz
am 13 Apr. 2020
Bearbeitet: Adam Danz
am 13 Apr. 2020
Why do you need to extract columns from the table? You can plot them and specify the range (ie, rows) directly from the plotting function.
If you need help thinking that through, share the first few rows of your table so we can see what you're working with. See head().
Akzeptierte Antwort
Adam Danz
am 13 Apr. 2020
Example:
plot(T.Var1, [T.Var2, T.Var3, T.Var4, T.Var5])
If you need to select certain rows,
idx = T.Var1 > x1 & T.Var1 < x2;
plot(T.Var1(idx), [T.Var2(idx), T.Var3(idx), T.Var4(idx), T.Var5(idx)])
3 Kommentare
Adam Danz
am 13 Apr. 2020
There are lots of ways to ask users for input.
etc...
To convert string to datetimes (which are much more useful),
datetime(T.Var1,'InputFormat','hh:mm:ss:SSS')
For other format options: https://www.mathworks.com/help/matlab/ref/datetime.html#d120e246650
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Preprocessing 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!