Daily mean of a hourly dataset
3 次查看(过去 30 天)
显示 更早的评论
Hi,
To determine the annual daily maximum of a dataset, as attached by this question I have to convert my data. My data set is as follows:
[Year, Month, Day, Hour, info1, info2,info3,....] and is a txt-file.
To combine the different time info, I used the function datetime, as this would transfer the four columns into one Time-column. But as I try, the error "All input arguments must be tables" appears. Therefore, I was wondering what I'm doing wrong in my code.
Secondly, I would like to average my data over the days, so I get one data point for every day. As if I have the average of every day, I need to determine the yearly maximum, which I tried with the retime-function.
Can someone help me with what I am doing wrong?
clear; clc; close all;
filename = 'data_1991_2020_edited.txt';
delimiterIn = ' ';
headerlinesIn = 1;
Data = importdata(filename,delimiterIn,headerlinesIn);
%[A,delimiterOut]=importdata(filename)
Data1 = readtable(filename);
% Create datetime array
time_dep = datetime([Data1(:,1),Data1(:,2),Data1(:,3),Data1(:,4),zeros(size(Data1,1),1),zeros(size(Data1,1),1)]);
%TData = timetable(Times, Data1(:,6));
%YrMean = retime(TData, 'yearly', 'max'); % Yearly Maximum
%Max = [YrMean.Times.Year YrMean.Var1]
0 个评论
采纳的回答
Simon Chan
2022-1-6
编辑:Simon Chan
2022-1-6
Try the following:
filename = 'data_2001_2010.txt';
Data1 = readtable(filename,'VariableNamingRule','preserve');
Data1(:,1)=[]; % Remove the 1st column
Data1.YYYYMMDD=datetime(string(Data1.YYYYMMDD),'InputFormat','yyyyMMdd'); % Convert to datetime format
Gmean=groupsummary(Data1,"YYYYMMDD",'day',"mean"); % Calculate daily mean
10 个评论
Simon Chan
2022-1-6
You need to state the criteria to remove duplicates since the values on other columns are different.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!