filtering out two months with a code
2 次查看(过去 30 天)
显示 更早的评论
dateless = Dates(nomatch);
datelike = Dates(~nomatch);
dateliketime=datetime(datelike);
liatime=dateliketime.Month == 10;
datelike1= datelike(liatime,1);
Here I select the month November from the group that is available. What if I want to select two months, i.e. November and October? Is there any way to display this?
0 个评论
采纳的回答
dpb
2017-11-1
Month1 == 10; % make variables instead of hardcoded
Month2 == 11; % "magic" numbers
datelike1= datelike(iswithin(dateliketime.Month,Month1,Month2));
where iswithin is my "syntactic sugar" utility
function flg=iswithin(x,lo,hi)
% returns T for values within range of input
% SYNTAX:
% [log] = iswithin(x,lo,hi)
% returns T for x between lo and hi values, inclusive
flg= (x>=lo) & (x<=hi);
If you convert your dates to datetime class, there is a "veritable plethora" of functions specifically for handling dates, date arithmetic and logic, including isbetween
0 个评论
更多回答(1 个)
Cam Salzberger
2017-11-1
In this code snippet, liatime will be a logical array, with true anywhere dateliketime.Month is 10, and false anywhere it isn't. So a good place to start looking would probably be under MATLAB's logical operations.
For your specific question, the logical OR operator (non-short-circuit version) should be sufficient:
liatime = dateliketime.Month == 10 | dateliketime.Month == 11;
-Cam
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!