MATLAB: Change timetable variable (working day to holiday)

changelogictimetablevariable

Hi all,
i have a timetable that specifies whether a date listed is working day or not-working day, by assigning 1 for working day and 0 for not-working day.
I wish to implement the holidays to the variable 'working day' of the timetable as well by changing the working day (1) to not-working day (0) for the specified dates in the variable 'holiday'.
holiday = {.... '2016-01-01','2016-03-25','2016-03-28','2016-05-01','2016-05-05','2016-05-10','2016-10-03','2016-12-25','2016-12-26'}
How may i implement this change?
Thank you.

Best Answer

Try this:
dd = datetime(2016,01,01):days(1):datetime(2016,12,31); % Create ‘datetime’ Array
workday = ones(size(dd(:))); % Define Original ‘workday’
holiday = datetime({'2016-01-01','2016-03-25','2016-03-28','2016-05-01','2016-05-05','2016-05-10','2016-10-03','2016-12-25','2016-12-26'});
TT1 = timetable(dd(:), workday); % Create ‘timetable’ Array
TF = ~ismember(TT1.Time,holiday); % Compare ‘Time’ & ‘holiday’
TT1.workday = +TF; % The ‘+’ Converts ‘TF’ To Numeric
with:
First_5_Rows = TT1(1:5,:)
producinmg:
First_5_Rows =
5×1 timetable
Time workday
___________ _______
01-Jan-2016 0
02-Jan-2016 1
03-Jan-2016 1
04-Jan-2016 1
05-Jan-2016 1
.