How do I know the number of days that the data exceeds a given treshold in a year?
1 view (last 30 days)
Show older comments
Edu Utrabo Carazo
on 22 May 2020
Commented: Edu Utrabo Carazo
on 22 May 2020
I have daily measured data for 50 years at 90 weather stations (including February 29 in leap years). I want to now how many days the data exceeds a given treshold at each station each year.
I tried to do a datetime variable and a timetable for each station like this but I do not know how to continue:
t1 = (datetime(1950,1,1):datetime(1999,12,31))' ;
for i = 1:90
TT = timetable(t1,temperature(:,i));
end
If I did not have February 29, I would know how to solve the problem with a reshape of the matrix. However, I do not know how to deal with my data since there will be years with 365 days and others with 366 and the reshape is not valid.
Thank you very much in advance.
0 Comments
Accepted Answer
Quad
on 22 May 2020
Something like this should work fine. I made some fake data and some random threshold.
t1 = (datetime(1950,1,1):datetime(1999,12,31))' ;
temp = rand(length(t1),90); % Make fake temp data
threshold = 0.25; % some threshold
year = t1.Year; % pull the years from t1
dataYears = (1950:1999); % the possible years from the data
numExceeded = zeros(length(dataYears),90); % initialize matrix to hold the num exceeded per year per station
count = 1;
for n = 1:length(dataYears)
numExceeded(n,:) = sum(temp(dataYears(n)==year,:)>threshold); % sum number of exceeded values
end
T = array2table(numExceeded);
% Make table "pretty"
varNames = cell(1,90);
for n = 1:90
varNames{n} = sprintf('Station_%d',n);
end
rowNames = cell(1,length(dataYears));
for n = 1:length(dataYears)
rowNames{n} = sprintf('%d',dataYears(n));
end
T.Properties.VariableNames = varNames;
T.Properties.RowNames = rowNames;
display(T);
This does not use timetable, but instead makes the row names the year
2 Comments
More Answers (0)
See Also
Categories
Find more on Data Preprocessing 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!