How to add missing rows in irregularly spaced table as per missing months and years?

2 views (last 30 days)
I have monthly meterological data from year Jan 1980 to Aug 2022. But the data entries are not equally spaced with all years and 12 months. Months or years when data wasnt recorded is missing from files (entire row missing making the the table 394*35 instead of 499*35). I have 10 such irregular tables. Need to obtain trends by plotting data against time (seasonal means per year). Missing entries is making this difficult. How can I make the table complete with all missing years and months ( having Nan as data entry)
ATTACHING A TABLE HERE. Can someone help
Thank you
Also CURRENT SCRIPT IM USING, can it be improved:
%Provide the path of IMD CSV files
PathCSV = ['C:\Users\Mannat\Desktop\datafiles\'];
% Read the name of files in PathCSV directory
listCSV = dir (PathCSV);
listCSV = {listCSV.name}';
n=10;
%Provide full path for the file which need to be analysed
Flname = [PathCSV,listCSV{n}];
%Read data from CSV file
Tbl = readtable(Flname);
StCode = Tbl.INDEX (1,:);
YEAR = Tbl.YEAR; % Easiest, Most Direct
MN = Tbl.MN;
MMAX = Tbl.MMAX;
NO = Tbl.NO;
MMIN = Tbl.MMIN;
W = (MN ==12 | MN ==1 |MN ==2 );
data = MMAX(W);
data([1,2,82,100],:) = [];
Year = YEAR(W)
Year([1,2,82, 100],:) = [];
Mean = ones(33,1);
for i = 1:97/3;
j = 3*i;
g = mean(data(j-2:j,:), "omitnan");
Mean(i) = g;
end
Mean([],:) = [];
Y = YEAR(MN ==12);
Y([28],:) = [];
plot(Y, Mean)

Accepted Answer

Star Strider
Star Strider on 18 Apr 2023
I am not certain what you want to do, however the correct approach to dealing with the missiing values is to convert the table to a timetable and then use retime approppriately to first fill the missing months (since I got the impression that is what you want to do), and then aggregate them.
Try something like this —
%Read data from CSV file
Flname = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/1359688/42083_Table_2_Monthly_NDCQ-2023-02-271.xlsx';
Tbl = readtable(Flname)
Tbl = 394×35 table
INDEX YEAR MN MMAX NO HMAX DT OC MMIN NO_1 LMIN DT_1 OC_1 TMRF NO_2 HVYRF DT_2 RD MWS NO_3 MEVP NO_4 MSSH NO_5 P1 P2 SN HA TH FG DS GF GA SQ LS _____ ____ __ ____ __ ____ __ __ ____ ____ ____ ____ ____ _____ ____ _____ ____ __ ___ ____ __________ ____ __________ ____ __ __ __ __ __ __ __ __ __ __ __ 42083 1980 1 10 31 14 25 1 2.3 31 -2.7 3 1 16 31 8.6 3 2 3.3 30 {0×0 char} 0 {0×0 char} 0 0 4 2 0 0 0 0 0 0 0 0 42083 1980 2 11.5 29 17.4 27 2 3.9 29 -1.5 5 1 20.4 29 7.8 16 2 3.8 29 {0×0 char} 0 {0×0 char} 0 0 7 4 0 1 0 0 0 0 0 0 42083 1980 3 13.5 30 20 21 1 5.1 30 -1.3 12 1 34.7 31 8.4 30 4 3.9 31 {0×0 char} 0 {0×0 char} 0 1 9 0 0 0 0 0 0 0 0 0 42083 1980 4 21.8 30 26.4 21 1 12.5 30 3.4 3 1 29.3 30 14.2 13 2 3.8 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 42083 1980 5 25 31 28.2 3 1 15.4 31 9.4 10 1 24.7 31 19.6 10 1 3.9 31 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 42083 1980 6 23.9 30 27.4 19 1 15 30 11 14 1 190 30 40.6 14 12 3 30 {0×0 char} 0 {0×0 char} 0 0 16 0 0 1 0 0 0 0 0 0 42083 1980 7 20.9 31 23.4 21 2 14.6 31 13.2 15 1 461.5 31 57.2 14 21 0.3 31 {0×0 char} 0 {0×0 char} 0 0 27 0 0 0 0 0 0 0 0 0 42083 1980 8 21.6 30 24.2 15 1 14.8 30 13.2 9 1 129.6 30 32.6 8 7 0.6 29 {0×0 char} 0 {0×0 char} 0 0 11 0 0 0 0 0 0 0 0 0 42083 1980 9 21.3 30 25.6 30 1 13.7 30 11.7 25 1 87.5 30 36.3 7 6 1.4 30 {0×0 char} 0 {0×0 char} 0 0 9 0 1 0 0 0 0 0 0 0 42083 1980 10 18.7 31 22.2 12 1 10.7 31 6.7 31 1 13.9 31 4.9 31 3 3.9 31 {0×0 char} 0 {0×0 char} 0 0 4 0 1 3 0 0 0 0 0 0 42083 1980 11 15 29 17.4 19 1 6.8 30 1.5 28 1 56.9 30 39.8 28 3 5.3 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 1 0 0 0 0 0 0 42083 1980 12 13.2 31 17.1 21 2 5.7 31 NaN 24 1 28.4 31 17.7 26 3 4.7 31 {0×0 char} 0 {0×0 char} 0 0 4 0 0 0 0 0 0 0 0 0 42083 1981 1 8.5 28 16 16 1 1.4 30 -3.3 24 1 31.5 30 8.1 24 5 5.9 30 {0×0 char} 0 {0×0 char} 0 0 8 5 0 0 0 0 0 0 0 0 42083 1981 2 12.1 23 16.4 22 2 4 23 NaN 9 2 22.4 23 10.8 28 3 6.5 23 {0×0 char} 0 {0×0 char} 0 0 6 4 0 0 0 0 0 0 0 0 42083 1981 3 13.3 24 18.4 30 1 5.4 26 1.1 11 2 106.4 27 27.8 22 8 6.8 27 {0×0 char} 0 {0×0 char} 0 0 14 3 0 1 0 0 0 0 0 0 42083 1981 4 20.4 28 24.6 29 1 11.6 27 5.2 6 2 20.8 28 9.4 17 2 5.1 28 {0×0 char} 0 {0×0 char} 0 0 5 0 1 2 0 0 0 0 0 0
YM = datetime(Tbl.YEAR,Tbl.MN,ones(size(Tbl.YEAR)), 'Format','yyyy MM'); % Create A 'datetime' Array
Tbl = removevars(Tbl,{'YEAR','MN'}); % Remove Now-Redundant Variables
addvars(Tbl,YM,'before',1); % Insert 'YM' As First Variable
TTbl = table2timetable(Tbl,'RowTimes',YM); % Define 'YM' As The 'RowTimes' Variable
TTbl = retime(TTbl, 'monthly', 'fillwithmissing') % Interpolate 'Time', Fill Missing Values With 'NaN'
TTbl = 511×33 timetable
Time INDEX MMAX NO HMAX DT OC MMIN NO_1 LMIN DT_1 OC_1 TMRF NO_2 HVYRF DT_2 RD MWS NO_3 MEVP NO_4 MSSH NO_5 P1 P2 SN HA TH FG DS GF GA SQ LS _______ _____ ____ __ ____ __ __ ____ ____ ____ ____ ____ _____ ____ _____ ____ __ ___ ____ __________ ____ __________ ____ __ __ __ __ __ __ __ __ __ __ __ 1980 01 42083 10 31 14 25 1 2.3 31 -2.7 3 1 16 31 8.6 3 2 3.3 30 {0×0 char} 0 {0×0 char} 0 0 4 2 0 0 0 0 0 0 0 0 1980 02 42083 11.5 29 17.4 27 2 3.9 29 -1.5 5 1 20.4 29 7.8 16 2 3.8 29 {0×0 char} 0 {0×0 char} 0 0 7 4 0 1 0 0 0 0 0 0 1980 03 42083 13.5 30 20 21 1 5.1 30 -1.3 12 1 34.7 31 8.4 30 4 3.9 31 {0×0 char} 0 {0×0 char} 0 1 9 0 0 0 0 0 0 0 0 0 1980 04 42083 21.8 30 26.4 21 1 12.5 30 3.4 3 1 29.3 30 14.2 13 2 3.8 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 1980 05 42083 25 31 28.2 3 1 15.4 31 9.4 10 1 24.7 31 19.6 10 1 3.9 31 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 1980 06 42083 23.9 30 27.4 19 1 15 30 11 14 1 190 30 40.6 14 12 3 30 {0×0 char} 0 {0×0 char} 0 0 16 0 0 1 0 0 0 0 0 0 1980 07 42083 20.9 31 23.4 21 2 14.6 31 13.2 15 1 461.5 31 57.2 14 21 0.3 31 {0×0 char} 0 {0×0 char} 0 0 27 0 0 0 0 0 0 0 0 0 1980 08 42083 21.6 30 24.2 15 1 14.8 30 13.2 9 1 129.6 30 32.6 8 7 0.6 29 {0×0 char} 0 {0×0 char} 0 0 11 0 0 0 0 0 0 0 0 0 1980 09 42083 21.3 30 25.6 30 1 13.7 30 11.7 25 1 87.5 30 36.3 7 6 1.4 30 {0×0 char} 0 {0×0 char} 0 0 9 0 1 0 0 0 0 0 0 0 1980 10 42083 18.7 31 22.2 12 1 10.7 31 6.7 31 1 13.9 31 4.9 31 3 3.9 31 {0×0 char} 0 {0×0 char} 0 0 4 0 1 3 0 0 0 0 0 0 1980 11 42083 15 29 17.4 19 1 6.8 30 1.5 28 1 56.9 30 39.8 28 3 5.3 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 1 0 0 0 0 0 0 1980 12 42083 13.2 31 17.1 21 2 5.7 31 NaN 24 1 28.4 31 17.7 26 3 4.7 31 {0×0 char} 0 {0×0 char} 0 0 4 0 0 0 0 0 0 0 0 0 1981 01 42083 8.5 28 16 16 1 1.4 30 -3.3 24 1 31.5 30 8.1 24 5 5.9 30 {0×0 char} 0 {0×0 char} 0 0 8 5 0 0 0 0 0 0 0 0 1981 02 42083 12.1 23 16.4 22 2 4 23 NaN 9 2 22.4 23 10.8 28 3 6.5 23 {0×0 char} 0 {0×0 char} 0 0 6 4 0 0 0 0 0 0 0 0 1981 03 42083 13.3 24 18.4 30 1 5.4 26 1.1 11 2 106.4 27 27.8 22 8 6.8 27 {0×0 char} 0 {0×0 char} 0 0 14 3 0 1 0 0 0 0 0 0 1981 04 42083 20.4 28 24.6 29 1 11.6 27 5.2 6 2 20.8 28 9.4 17 2 5.1 28 {0×0 char} 0 {0×0 char} 0 0 5 0 1 2 0 0 0 0 0 0
TTbl.MEVP = str2double(TTbl.MEVP); % Convert String Variable To Numeric
TTbl.MSSH = str2double(TTbl.MSSH); % Convert String Variable To Numeric
VN = TTbl.Properties.VariableNames;
TTblYearlyMean = retime(TTbl,'yearly',@(x)mean(x,'omitnan')) % Calculate Yearly Mean
TTblYearlyMean = 43×33 timetable
Time INDEX MMAX NO HMAX DT OC MMIN NO_1 LMIN DT_1 OC_1 TMRF NO_2 HVYRF DT_2 RD MWS NO_3 MEVP NO_4 MSSH NO_5 P1 P2 SN HA TH FG DS GF GA SQ LS _______ _____ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ____ ____ _____ ______ ________ ______ _______ ________ _______ ________ ________ ____ ________ __ __ 1980 01 42083 18.033 30.25 21.942 19.5 1.25 10.042 30.333 5.8727 14.917 1 91.075 30.417 23.975 16.667 5.5 3.1583 30.25 NaN 0 NaN 0 0.083333 8.8333 0.5 0.16667 0.5 0 0 0 0 0 0 1981 01 42083 17.508 28.25 21.417 18.167 1.3333 9.625 28.417 6.92 15.75 1.3333 109.73 28.75 28.808 18.583 6.6667 4.3917 28.75 NaN 0 NaN 0 0 9.75 1 0.083333 1.1667 0 0.16667 0 0 0 0 1982 01 42083 16.4 30.25 20.908 17.167 1.0833 8.6917 30.333 3.4667 19.75 1 111.07 30.333 27.1 17.583 7.8333 4.975 30.167 NaN 0 NaN 0 0.083333 11.083 1.9167 0.5 1.3333 0.083333 0 0 0 0 0 1983 01 42083 16.333 30.25 20.483 16.917 1.25 9.2364 30.417 4.2182 17.917 1 100.46 30.417 30.092 18.333 6.75 4.5417 30.417 NaN 0 NaN 0 0.25 10.833 1.6667 0.33333 1.3333 0 0.25 0 0 0 0 1984 01 42083 17.467 30.5 21.725 15.917 1.0833 10.6 30.5 5.1333 18.083 1.0833 83.375 30.417 20.717 19.833 6.1667 4.0583 30.5 NaN 0 NaN 0 0.41667 8.6667 1 0.25 0.91667 0 0 0 0 0 0 1985 01 42083 17.65 29.083 22.042 15.5 1.0833 9.9818 29.083 5.2667 14 1.0833 117.22 29.083 31.45 15.667 6.8333 3.5167 28.833 NaN 0 NaN 0 0.16667 11.167 0.91667 0.33333 0.75 0 0 0 0 0 0 1986 01 42083 16.958 30 21.625 13.333 1.0833 9.1 30.083 5.4222 17.5 1 93.275 30.083 32.083 17.083 6.1667 3.9583 30.083 NaN 0 NaN 0 0.33333 9 1.1667 0.25 0.5 0 0 0 0 0 0 1987 01 42083 18.417 29.5 23.017 18.417 1.1667 10.492 29.5 5.3667 14.583 1.0833 79.758 29.75 24.042 16.917 5.3333 3.4 27.5 NaN 0 NaN 0 0.083333 7.1667 0.58333 0.083333 1.3333 0.083333 0.083333 0 0 0 0 1988 01 42083 18.887 30.5 23.475 16.5 1.125 11.125 30.5 6.6625 17.75 1.25 152.39 30.5 24.875 17.625 8.875 3.7625 30.375 NaN 0 NaN 0 0.25 11.5 1.25 0.125 0.375 0 0 0 0 0 0 1989 01 42083 19.467 27.333 22.467 8.5 1.3333 11.85 27.333 9.26 19 1.1667 130.45 27.333 49.233 13.5 5.3333 2.95 27.333 NaN 0 NaN 0 0.5 8.5 0.5 0.16667 5.3333 7.1667 0 0 0 0 0 1990 01 42083 18.475 28.917 22.6 13.667 1 10.217 28.917 7.41 15.5 1 144.6 28.917 37.958 14.5 8.5 3.5 28.917 NaN 0 NaN 0 0.66667 11.417 1.25 2.5833 6.5 7.6667 0 0 0 0 0 1991 01 42083 18.675 29.75 22.992 19.167 1.25 10.025 29.75 6.58 14.667 1.0833 85.067 29.75 24.933 12.333 5.8333 3.9583 29.75 NaN 0 4.5 6.9167 1 9.5 1.4167 1.0833 5.5 4.75 0 0.25 0 0 0 1992 01 42083 18.85 29.917 22.9 14.583 1 9.775 30.083 5.55 17.5 1.25 119.93 30.083 30.342 17.083 7.0833 3.8833 30.083 NaN 0 5.225 10.333 0.75 9.9167 0.58333 0.33333 1.8333 3.5833 0 0 0 0 0 1993 01 42083 19.4 30.417 23.433 16.083 1.1667 11.173 30.417 6.3545 17.583 1.0833 126.58 30.417 30.192 16.75 7.5833 4.0833 30.417 NaN 0 NaN 0 0.66667 10.5 1.4167 1.3333 5.25 6.1667 0 0 0 0 0 1994 01 42083 19.342 30.167 23.508 17.083 1 10.775 30.333 7.5182 17.917 1.3333 133.36 30.333 30.875 17.917 7.3333 3.3833 30.167 NaN 0 NaN 0 0.41667 13 1.0833 0.91667 7.0833 6.5 0 0 0.083333 0 0 1995 01 42083 18.775 30.167 23.092 17.083 1 10.592 30.333 8.5 15 1.1667 161.14 30.333 40.292 17.083 8.9167 3.425 30.333 NaN 0 NaN 0 0.58333 11.5 1.5833 1.5833 6.5833 8.75 0 0.25 0.083333 0 0
figure % Plot Selected Variables
plot(TTblYearlyMean.Time, TTblYearlyMean{:,[4 7]})
grid
xlabel('Time')
ylabel('Variable')
legend(VN{[4 7]}, 'Location','best')
This should get you started.
.
  2 Comments
Mannat
Mannat on 19 Apr 2023
Thank you so much!
The missing entries are filled but i need to take seasonal means. i.e. means for variables of months jan feb dec.....or summer april may june.......So i need months and years in separate columns.
Star Strider
Star Strider on 19 Apr 2023
As always, my pleasure!
To aggregate every three months (conveniently aligned with the calendat in this instance, so we can aggregate on 'quarterly'), try something like this —
%Read data from CSV file
Flname = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/1359688/42083_Table_2_Monthly_NDCQ-2023-02-271.xlsx';
Tbl = readtable(Flname)
Tbl = 394×35 table
INDEX YEAR MN MMAX NO HMAX DT OC MMIN NO_1 LMIN DT_1 OC_1 TMRF NO_2 HVYRF DT_2 RD MWS NO_3 MEVP NO_4 MSSH NO_5 P1 P2 SN HA TH FG DS GF GA SQ LS _____ ____ __ ____ __ ____ __ __ ____ ____ ____ ____ ____ _____ ____ _____ ____ __ ___ ____ __________ ____ __________ ____ __ __ __ __ __ __ __ __ __ __ __ 42083 1980 1 10 31 14 25 1 2.3 31 -2.7 3 1 16 31 8.6 3 2 3.3 30 {0×0 char} 0 {0×0 char} 0 0 4 2 0 0 0 0 0 0 0 0 42083 1980 2 11.5 29 17.4 27 2 3.9 29 -1.5 5 1 20.4 29 7.8 16 2 3.8 29 {0×0 char} 0 {0×0 char} 0 0 7 4 0 1 0 0 0 0 0 0 42083 1980 3 13.5 30 20 21 1 5.1 30 -1.3 12 1 34.7 31 8.4 30 4 3.9 31 {0×0 char} 0 {0×0 char} 0 1 9 0 0 0 0 0 0 0 0 0 42083 1980 4 21.8 30 26.4 21 1 12.5 30 3.4 3 1 29.3 30 14.2 13 2 3.8 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 42083 1980 5 25 31 28.2 3 1 15.4 31 9.4 10 1 24.7 31 19.6 10 1 3.9 31 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 42083 1980 6 23.9 30 27.4 19 1 15 30 11 14 1 190 30 40.6 14 12 3 30 {0×0 char} 0 {0×0 char} 0 0 16 0 0 1 0 0 0 0 0 0 42083 1980 7 20.9 31 23.4 21 2 14.6 31 13.2 15 1 461.5 31 57.2 14 21 0.3 31 {0×0 char} 0 {0×0 char} 0 0 27 0 0 0 0 0 0 0 0 0 42083 1980 8 21.6 30 24.2 15 1 14.8 30 13.2 9 1 129.6 30 32.6 8 7 0.6 29 {0×0 char} 0 {0×0 char} 0 0 11 0 0 0 0 0 0 0 0 0 42083 1980 9 21.3 30 25.6 30 1 13.7 30 11.7 25 1 87.5 30 36.3 7 6 1.4 30 {0×0 char} 0 {0×0 char} 0 0 9 0 1 0 0 0 0 0 0 0 42083 1980 10 18.7 31 22.2 12 1 10.7 31 6.7 31 1 13.9 31 4.9 31 3 3.9 31 {0×0 char} 0 {0×0 char} 0 0 4 0 1 3 0 0 0 0 0 0 42083 1980 11 15 29 17.4 19 1 6.8 30 1.5 28 1 56.9 30 39.8 28 3 5.3 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 1 0 0 0 0 0 0 42083 1980 12 13.2 31 17.1 21 2 5.7 31 NaN 24 1 28.4 31 17.7 26 3 4.7 31 {0×0 char} 0 {0×0 char} 0 0 4 0 0 0 0 0 0 0 0 0 42083 1981 1 8.5 28 16 16 1 1.4 30 -3.3 24 1 31.5 30 8.1 24 5 5.9 30 {0×0 char} 0 {0×0 char} 0 0 8 5 0 0 0 0 0 0 0 0 42083 1981 2 12.1 23 16.4 22 2 4 23 NaN 9 2 22.4 23 10.8 28 3 6.5 23 {0×0 char} 0 {0×0 char} 0 0 6 4 0 0 0 0 0 0 0 0 42083 1981 3 13.3 24 18.4 30 1 5.4 26 1.1 11 2 106.4 27 27.8 22 8 6.8 27 {0×0 char} 0 {0×0 char} 0 0 14 3 0 1 0 0 0 0 0 0 42083 1981 4 20.4 28 24.6 29 1 11.6 27 5.2 6 2 20.8 28 9.4 17 2 5.1 28 {0×0 char} 0 {0×0 char} 0 0 5 0 1 2 0 0 0 0 0 0
YM = datetime(Tbl.YEAR,Tbl.MN,ones(size(Tbl.YEAR)), 'Format','yyyy MM'); % Create A 'datetime' Array
Tbl = removevars(Tbl,{'YEAR','MN'}); % Remove Now-Redundant Variables
addvars(Tbl,YM,'before',1); % Insert 'YM' As First Variable
TTbl = table2timetable(Tbl,'RowTimes',YM); % Define 'YM' As The 'RowTimes' Variable
TTbl = retime(TTbl, 'monthly', 'fillwithmissing') % Interpolate 'Time', Fill Missing Values With 'NaN'
TTbl = 511×33 timetable
Time INDEX MMAX NO HMAX DT OC MMIN NO_1 LMIN DT_1 OC_1 TMRF NO_2 HVYRF DT_2 RD MWS NO_3 MEVP NO_4 MSSH NO_5 P1 P2 SN HA TH FG DS GF GA SQ LS _______ _____ ____ __ ____ __ __ ____ ____ ____ ____ ____ _____ ____ _____ ____ __ ___ ____ __________ ____ __________ ____ __ __ __ __ __ __ __ __ __ __ __ 1980 01 42083 10 31 14 25 1 2.3 31 -2.7 3 1 16 31 8.6 3 2 3.3 30 {0×0 char} 0 {0×0 char} 0 0 4 2 0 0 0 0 0 0 0 0 1980 02 42083 11.5 29 17.4 27 2 3.9 29 -1.5 5 1 20.4 29 7.8 16 2 3.8 29 {0×0 char} 0 {0×0 char} 0 0 7 4 0 1 0 0 0 0 0 0 1980 03 42083 13.5 30 20 21 1 5.1 30 -1.3 12 1 34.7 31 8.4 30 4 3.9 31 {0×0 char} 0 {0×0 char} 0 1 9 0 0 0 0 0 0 0 0 0 1980 04 42083 21.8 30 26.4 21 1 12.5 30 3.4 3 1 29.3 30 14.2 13 2 3.8 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 1980 05 42083 25 31 28.2 3 1 15.4 31 9.4 10 1 24.7 31 19.6 10 1 3.9 31 {0×0 char} 0 {0×0 char} 0 0 5 0 0 0 0 0 0 0 0 0 1980 06 42083 23.9 30 27.4 19 1 15 30 11 14 1 190 30 40.6 14 12 3 30 {0×0 char} 0 {0×0 char} 0 0 16 0 0 1 0 0 0 0 0 0 1980 07 42083 20.9 31 23.4 21 2 14.6 31 13.2 15 1 461.5 31 57.2 14 21 0.3 31 {0×0 char} 0 {0×0 char} 0 0 27 0 0 0 0 0 0 0 0 0 1980 08 42083 21.6 30 24.2 15 1 14.8 30 13.2 9 1 129.6 30 32.6 8 7 0.6 29 {0×0 char} 0 {0×0 char} 0 0 11 0 0 0 0 0 0 0 0 0 1980 09 42083 21.3 30 25.6 30 1 13.7 30 11.7 25 1 87.5 30 36.3 7 6 1.4 30 {0×0 char} 0 {0×0 char} 0 0 9 0 1 0 0 0 0 0 0 0 1980 10 42083 18.7 31 22.2 12 1 10.7 31 6.7 31 1 13.9 31 4.9 31 3 3.9 31 {0×0 char} 0 {0×0 char} 0 0 4 0 1 3 0 0 0 0 0 0 1980 11 42083 15 29 17.4 19 1 6.8 30 1.5 28 1 56.9 30 39.8 28 3 5.3 30 {0×0 char} 0 {0×0 char} 0 0 5 0 0 1 0 0 0 0 0 0 1980 12 42083 13.2 31 17.1 21 2 5.7 31 NaN 24 1 28.4 31 17.7 26 3 4.7 31 {0×0 char} 0 {0×0 char} 0 0 4 0 0 0 0 0 0 0 0 0 1981 01 42083 8.5 28 16 16 1 1.4 30 -3.3 24 1 31.5 30 8.1 24 5 5.9 30 {0×0 char} 0 {0×0 char} 0 0 8 5 0 0 0 0 0 0 0 0 1981 02 42083 12.1 23 16.4 22 2 4 23 NaN 9 2 22.4 23 10.8 28 3 6.5 23 {0×0 char} 0 {0×0 char} 0 0 6 4 0 0 0 0 0 0 0 0 1981 03 42083 13.3 24 18.4 30 1 5.4 26 1.1 11 2 106.4 27 27.8 22 8 6.8 27 {0×0 char} 0 {0×0 char} 0 0 14 3 0 1 0 0 0 0 0 0 1981 04 42083 20.4 28 24.6 29 1 11.6 27 5.2 6 2 20.8 28 9.4 17 2 5.1 28 {0×0 char} 0 {0×0 char} 0 0 5 0 1 2 0 0 0 0 0 0
TTbl.MEVP = str2double(TTbl.MEVP); % Convert String Variable To Numeric
TTbl.MSSH = str2double(TTbl.MSSH); % Convert String Variable To Numeric
VN = TTbl.Properties.VariableNames;
TTblQuarterlyMean = retime(TTbl,'quarterly',@(x)mean(x,'omitnan')) % Calculate Quarterly Mean
TTblQuarterlyMean = 171×33 timetable
Time INDEX MMAX NO HMAX DT OC MMIN NO_1 LMIN DT_1 OC_1 TMRF NO_2 HVYRF DT_2 RD MWS NO_3 MEVP NO_4 MSSH NO_5 P1 P2 SN HA TH FG DS GF GA SQ LS _______ _____ ______ ______ ______ ______ ______ ______ ______ _______ ______ ______ ______ ______ ______ ______ ______ _______ ______ ____ ____ ____ ____ _______ ______ ______ _______ _______ _______ _______ __ __ __ __ 1980 01 42083 11.667 30 17.133 24.333 1.3333 3.7667 30 -1.8333 6.6667 1 23.7 30.333 8.2667 16.333 2.6667 3.6667 30 NaN 0 NaN 0 0.33333 6.6667 2 0 0.33333 0 0 0 0 0 0 1980 04 42083 23.567 30.333 27.333 14.333 1 14.3 30.333 7.9333 9 1 81.333 30.333 24.8 12.333 5 3.5667 30.333 NaN 0 NaN 0 0 8.6667 0 0 0.33333 0 0 0 0 0 0 1980 07 42083 21.267 30.333 24.4 22 1.3333 14.367 30.333 12.7 16.333 1 226.2 30.333 42.033 9.6667 11.333 0.76667 30 NaN 0 NaN 0 0 15.667 0 0.33333 0 0 0 0 0 0 0 1980 10 42083 15.633 30.333 18.9 17.333 1.3333 7.7333 30.667 4.1 27.667 1 33.067 30.667 20.8 28.333 3 4.6333 30.667 NaN 0 NaN 0 0 4.3333 0 0.33333 1.3333 0 0 0 0 0 0 1981 01 42083 11.3 25 16.933 22.667 1.3333 3.6 26.333 -1.1 14.667 1.6667 53.433 26.667 15.567 24.667 5.3333 6.4 26.667 NaN 0 NaN 0 0 9.3333 4 0 0.33333 0 0 0 0 0 0 1981 04 42083 22.933 28 26.367 22 1.3333 14.067 27.333 8.9667 8.3333 1.3333 82.633 28.333 32.133 19.333 5 4.7 28.333 NaN 0 NaN 0 0 7.6667 0 0.33333 4.3333 0 0.66667 0 0 0 0 1981 07 42083 20.833 29.667 24 14 1 14.167 29.667 11.933 24.333 1.3333 275 29.667 46.667 18.667 15 2.2333 29.667 NaN 0 NaN 0 0 19 0 0 0 0 0 0 0 0 0 1981 10 42083 14.967 30.333 18.367 14 1.6667 6.6667 30.333 4.35 15.667 1 27.833 30.333 20.867 11.667 1.3333 4.2333 30.333 NaN 0 NaN 0 0 3 0 0 0 0 0 0 0 0 0 1982 01 42083 9.3 29.333 16.333 20 1 2.2333 29.667 -3.5333 11 1 81.367 29.667 20.667 13 7.3333 7.4667 29.333 NaN 0 NaN 0 0.33333 12.333 6.6667 0 0.66667 0 0 0 0 0 0 1982 04 42083 20.2 30.333 24.133 25 1 11.533 30.333 5.4 17.333 1 173.07 30.333 38.567 19.667 11 5.5667 30 NaN 0 NaN 0 0 13.667 0 2 4.3333 0 0 0 0 0 0 1982 07 42083 21.733 30.667 24.733 16.333 1.3333 14.233 30.667 10.667 22 1 178.47 30.667 40.267 13.333 11.667 2.1667 30.667 NaN 0 NaN 0 0 15.667 0 0 0 0 0 0 0 0 0 1982 10 42083 14.367 30.667 18.433 7.3333 1 6.7667 30.667 1.3333 28.667 1 11.367 30.667 8.9 24.333 1.3333 4.7 30.667 NaN 0 NaN 0 0 2.6667 1 0 0.33333 0.33333 0 0 0 0 0 1983 01 42083 9.7 30 14.733 20 1 2.7 30 -3.35 18 1 66.767 30 29.067 20.667 5.6667 7.1667 30 NaN 0 NaN 0 0 8.6667 4 0.66667 1 0 0.66667 0 0 0 0 1983 04 42083 19.933 30 24.933 27.333 1 11.267 30.333 4.6333 14 1 129.43 30.333 27.933 19.667 8.6667 5.4 30.333 NaN 0 NaN 0 0.33333 12.333 1.3333 0.33333 2.6667 0 0.33333 0 0 0 0 1983 07 42083 21.033 30.667 23.267 14 2 14.1 30.667 11.7 12.667 1 171.3 30.667 45.567 21 10.667 1.7 30.667 NaN 0 NaN 0 0.66667 17.667 0 0 0.66667 0 0 0 0 0 0 1983 10 42083 14.667 30.333 19 6.3333 1 6.7 30.667 1.3667 27 1 34.333 30.667 17.8 12 2 3.9 30.667 NaN 0 NaN 0 0 4.6667 1.3333 0.33333 1 0 0 0 0 0 0
figure % Plot Selected Variables
plot(TTblQuarterlyMean.Time, TTblQuarterlyMean{:,[2 7]})
grid
xlabel('Time')
ylabel('Variable')
legend(VN{[2 7]}, 'Location','best')
For best results, the legend ‘VN’ arguments need to match the variables being plotted.
.

Sign in to comment.

More Answers (0)

Categories

Find more on Tables in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!