我正在尝试创建每日日期的向量。然而,我不想包括周末(即星期六或星期日。
我正在使用isbusday功能,几乎可以满足我的要求。因为我的date_vector('date_vec')中没有星期六或星期日返回。然而它也删除了美国银行假期,例如在我的日期向量中没有12月25日。有没有办法强制这种方法忽略银行假日,还是我应该完全使用其他方法?
date_vec = [dt_start : dt_end]; % daily dates
weekend_vec = [1 0 0 0 0 0 1]; % vector to help remove weekends
bus_day = isbusday(date_vec, [], weekend_vec);
date_vec(bus_day == 0) = [];
Matlab函数ISBUSDAY
%ISBUSDAY True for dates that are business days.
%
% T = ISBUSDAY(Date, Holiday, Weekend)
%
% Inputs:
%
% Date - a vector of dates in question. Dates are assumed to be whole
% date numbers or date stamps with no fractional or time
% values.
%
% Optional Inputs:
%
% Holiday - a user-defined vector of holidays. The default
% is a predefined US holidays (in holidays.m)
%
% Weekend - a vector of length 7, containing 0 and 1, with
% the value of 1 to indicate weekend day(s).
% The first element of this vector corresponds
% to Sunday.
% Thus, when Saturday and Sunday are weekend
% then WEEKEND = [1 0 0 0 0 0 1]. The default
% is Saturday and Sunday weekend.
答案 0 :(得分:4)
根据isbusday
documentation,如果第二个参数为[]
,则使用默认假期。要强制isbusday
而不是考虑假期,请使用超出范围的值作为第二个参数,例如序列日期0
:
bus_day = isbusday(date_vec, 0, weekend_vec);