MATLAB Answers

define time period for each year

조회 수: 3(최근 30일)
Hi all,
I wish to re-define my time period.
The initial time period is as following:
The time period ranges from 01-10 (1st of Oct.) till 30-04 (30th of Apr.).
The range is defined by months only. The array 'Date' contains datetime value that is in yyyy-MM-dd format.
% starting month
sm = 5;
% ending month
em = 9;
% starting day
fd = 1;
% ending day
ld = 30;
PERIOD_1 = find(month(Date)<sm) | month(Date)>em)
PERIOD_2 = find(month(Date)>(sm-1) & month(Date)<(em+1))
As for a new time period, I wish to use both day values ('starting day' and 'ending day') as well, because if not...
i won't be able to define period that does not start on the 1st of a month (e.g. 04-10 till 27-04).
Thank you!

채택된 답변

Walter Roberson
Walter Roberson 15 Nov 2020
[y, m, d] = ymd(YourDataTable.Date);
mask = m >= sm & m <= em & (m > sm | d >= fd) & (m < em | d <= ld);
selected_entries = YourDataTable(mask,:);
  댓글 수: 2
Walter Roberson
Walter Roberson 19 Nov 2020
Though the poster did say that the range was defined by month only, so
m = month(YourDataTable.Date);
mask = m <= 4 | m >= 10;
selected_entries = YourDataTable(mask,:);
I think my earlier code was selecting in the opposite sense, as I did not notice that they wanted October to April.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by