Filter löschen
Filter löschen

JOIN CVS FILES AND PLOT

8 Ansichten (letzte 30 Tage)
Willian
Willian am 22 Aug. 2024
Bearbeitet: Walter Roberson am 3 Sep. 2024 um 22:05
I have 4 csv files, I try to generate a single graph and generate a single new file, I have tried from a .xlsx code but I have not been able to.
fileDir = pwd; % current directory (or specify which one is the working directory)
S = dir(fullfile(fileDir,'*.csv')); % get list of data files in directory
S = natsortfiles(S); % sort file names into natural order , see : https://fr.mathworks.com/matlabcentral/fileexchange/47434-natural-order-filename-sort
for k = 1:length(S)
filename = S(k).name % to actually show filenames are sorted (see command window)
T = readtable(fullfile(fileDir, filename));
x = T{:,1} + days(T{:,2}); % Combining date and time
y = T{:,3}; % Pressure data
plot(x,y);
hold on
end
% save new file
writetable(s, 'new_file.csv');
when I have a single csv file I do it as follows:
data1 = readtable('file.csv', 'VariableNamingRule','preserve');
MyDateTime = data1.Date + data1.Time;
MyDateTime.Format = 'yyyy-MM-dd HH:mm:ss';
data2 = [data1(:,1) table(MyDateTime) data1(:,[3:end])];
figure (1)
plot(data2.MyDateTime, data2.('FIT'),'-r')
grid on
hold on
I would appreciate help on the first code when I have multiple csv files. Matlab R2021a

Akzeptierte Antwort

Voss
Voss am 22 Aug. 2024
fileDir = pwd; % current directory (or specify which one is the working directory)
S = dir(fullfile(fileDir,'*.csv')); % get list of data files in directory
S = natsortfiles(S); % sort file names into natural order , see : https://fr.mathworks.com/matlabcentral/fileexchange/47434-natural-order-filename-sort
for k = 1:length(S)
filename = S(k).name % to actually show filenames are sorted (see command window)
T = readtable(fullfile(fileDir, filename),'VariableNamingRule','preserve');
S(k).data = T; % store each table in an element of the S struct array
end
filename = '01 HRS.csv'
filename = '02 HRS.csv'
filename = '03 HRS.csv'
filename = '04 HRS.csv'
T = vertcat(S.data) % combine all the tables
T = 1448x8 table
No. Date Time Millitm PIT TIT PD FIT ___ __________ ________ _______ ______ ______ ______ ______ NaN NaT NaN NaN NaN NaN NaN NaN 1 2024-08-18 00:04:55 147 152.02 66.019 60.657 2591.9 2 2024-08-18 00:05:05 163 152.02 66.078 61.257 2588.8 3 2024-08-18 00:05:15 143 152.02 66.019 61.19 2588.1 4 2024-08-18 00:05:25 163 151.9 66.019 61.057 2596.5 5 2024-08-18 00:05:35 169 152.02 66.019 59.524 2592.3 6 2024-08-18 00:05:45 138 153.6 66.019 56.591 2526.3 7 2024-08-18 00:05:55 131 154.58 66.137 57.524 2523.6 8 2024-08-18 00:06:05 135 154.7 66.196 60.523 2558.8 9 2024-08-18 00:06:15 145 154.09 66.254 60.957 2602.2 10 2024-08-18 00:06:25 166 153.24 66.254 61.49 2608 11 2024-08-18 00:06:35 152 152.26 66.137 62.19 2623.8 12 2024-08-18 00:06:45 161 151.41 66.019 62.29 2618.1 13 2024-08-18 00:06:55 144 151.17 65.96 61.123 2602.4 14 2024-08-18 00:07:05 158 151.29 65.901 60.857 2571.4 15 2024-08-18 00:07:15 168 151.41 65.842 60.99 2574.6
% plot all the data
x = T.Date + T.Time; % Combining date and time
y = T.FIT; % Pressure data
plot(x,y);
% save new file
writetable(T, 'new_file.csv');
  2 Kommentare
Willian
Willian am 3 Sep. 2024 um 21:57
tks for you support
Voss
Voss am 3 Sep. 2024 um 21:58
You're welcome!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Dates and Time finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by