filtering out two months with a code
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
dpb
am 1 Nov. 2017
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 Kommentare
Weitere Antworten (1)
Cam Salzberger
am 1 Nov. 2017
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 Kommentare
Siehe auch
Kategorien
Mehr zu Dates and Time finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!