timerange in a loop

3 次查看(过去 30 天)
Ugur Acar
Ugur Acar 2019-10-19
评论: Steven Lord 2019-10-20
is it possible to put dates into a loop used in timerange function?
for i=2012:2016;
s(i)=timerange('i-01-01','i-02-01')
end

采纳的回答

Steven Lord
Steven Lord 2019-10-20
Yes. Build datetime objects using the three-input syntax and use them to construct a timerange. I left off one of the semicolons in the example below so you can see that at each iteration a different timerange was built with a different year.
for theyear = 2012:2016
beginDate = datetime(theyear, 01, 01);
endDate = datetime(theyear, 02, 01);
TR = timerange(beginDate, endDate)
% Do something with TR
end
  3 个评论
Ugur Acar
Ugur Acar 2019-10-20
i guess i did it
for i=2012:2016;
beginDate=datetime(i,01,01);
endDate=datetime(i,02,01);
TR=timerange(beginDate,endDate);
TT_january = TT_int(TR,:);
TT_mean=retime(TT_january,'daily','mean');
for j=1:size(TT_mean,1);
TT_mean_jan(j,i-2011)=([TT_mean{j,1}]);
end
end
Steven Lord
Steven Lord 2019-10-20
i did like this. but TT_mean timetablecreated just for the last year (2016),
Yes, that's correct. Each iteration through the loop you're overwriting the TT_mean variable.
i need the keep the data created for the other years also (2012-2013-2014-2015);
You could store it in a cell array, in a struct array, do whatever further processing you want to do on the January data inside the loop, or perhaps skip the timerange altogether and use groupsummary or grouptransform.

请先登录,再进行评论。

更多回答(2 个)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2019-10-19
Hi,
What about this:
for ii=2012:2016
H{ii-2011} = [num2str(ii), '-01-01',' : ', num2str(ii), '-02-01'];
end
Good luck.
  1 个评论
Ugur Acar
Ugur Acar 2019-10-19
i tried this;
H{1} = [num2str(2012), '-01-01'];
H{2} = [num2str(2012), '-02-01'];
TR = timerange(H{1},H{2});
doesnt worked :(
timerange function works like that;
TR = timerange('2012-01-01','2012-02-01');
because of apostrophe may be.

请先登录,再进行评论。


Sulaymon Eshkabilov
Sulaymon Eshkabilov 2019-10-19
How about this way:
for ii=2012:2016
H{ii-2011,1} = [num2str(ii), '-01-01'];
H{ii-2011, 2}= [num2str(ii), '-02-01'];
end

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by