我在MATLAB中有一个日期时间列矩阵,我希望将其拆分为不同的年份,并将每年分配给一个变量.即如果,
Rows 1 to 5000 = 2015,
Rows 5000 to 10000 = 2016,
Rows 10001 to 16000 = 2017.
Run Code Online (Sandbox Code Playgroud)
有人可以帮我一些代码来做这个,所以我不必手动完成.
谢谢.
您可以尝试执行以下操作.在这里,载体unique_years包含在你的岁月datetime载体newdatemat是一个单元阵列与一排,每组给定年份相关联的日期.
%// Sample data
datemat=[datetime(2015,5,3);...
datetime(2015,3,5);...
datetime(2016,4,2);...
datetime(2014,1,1);...
datetime(2014,3,2);...
datetime(2017,3,3)];
%// Get the unique years from the date vector
unique_years = unique(year(datemat));
%// create a cell array newdatemat that contains
%// the datenums from datemat grouped by year
newdatemat=cell(length(unique_years), 1);
for ii=1:length(unique_years)
newdatemat{ii} = datemat(year(datemat) == unique_years(ii));
end
Run Code Online (Sandbox Code Playgroud)
根据@Adriaan的建议,下面提供了上述代码的类似版本:
mydatevec = datevec(datemat);
unique_years = unique(mydatevec(:,1));
newdatemat1=cell(length(unique_years), 1);
for ii=1:length(unique_years)
newdatemat1{ii} = mydatevec(mydatevec(:,1) == unique_years(ii),:);
end
Run Code Online (Sandbox Code Playgroud)