Writing a conditional statement for timeseries data

15 次查看(过去 30 天)
Hi,
In the code attached, I want to write a conditional statement based on datetime and sunrise sunset time. Sunrise is the sunrise time as character vector, sunrise_new is the sunrise time after converting it to HHMM format using datenum (but i am not sure which one to use). I want to figure out if it's a day or night based on datetime and sunrise sunset data. My code should read like:
If HH:MM value in DateTime is > sunrise & < sunset
time = 1
If HH:MM value in DateTime < sunrise & > sunset
time = 0
end
I don't know how to properly write conditional statement in matlab yet.

回答(1 个)

Rohit
Rohit 2022-8-22
Hi,
In order to compare the times, you can use the "datenum()" function as shown in the below example:
% Getting current time
now=datetime('now')
now = datetime
22-Aug-2022 08:48:58
% Converting datetime to serial date number
format long
hour=now.Hour;
minn=now.Minute;
time_to_check=datenum(hour+":"+minn,'HH:MM')
time_to_check =
7.385223666666667e+05
sunrise = datenum('07:36', 'HH:MM' );
sunset = datenum('17:46', 'HH:MM' ) ;
% Conditional statement to figure out if it's a day or night
if time_to_check<sunrise || time_to_check>sunset
time=0;
else
time=1;
end
You can refer to the below Documentation link for "datenum" function along with the MATLAB Answers link:
  2 个评论
Benju Baniya
Benju Baniya 2022-8-30
Thank you. When I use the conditional statment, I get an error saying "Operands to the logical and (&&) and or (||) operators must be convertible to logical scalar values".
I used this code: Here joined_eddy is the merged file of provided dataet.
format = long
hour = joined_eddy.DateTime.Hour
min = joined_eddy.DateTime.Minute
time_to_check = datenum(hour+":"+ min, 'HH:MM')
%Day and night values
if time_to_check<joined_eddy.Sunrise || time_to_check>joined_eddy.Sunset
time = 0;
else
time = 1;
end
Walter Roberson
Walter Roberson 2022-8-30
No loop needed, no datenum() needed
time = isbetween(joined_eddy.DateTime, joined_eddy.Sunrise, joined_eddy.Sunset, 'closed');

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by