MATLAB从周数和年份获取日期

pse*_*dom 2 matlab date

在Matlab 2016a中,我有一个周数的向量:

weekNum = [20 21 22 23];
Run Code Online (Sandbox Code Playgroud)

有没有办法在周日从周日开始将周数转换为2018年的各自日期?

gno*_*ice 6

你可以使用函数daysweekday.从一年的第一天开始,您可以减去天数以查找上一个星期日(如果它不是星期天),然后将您的向量乘以weekNum7,为每个所需的星期添加到该日期的偏移量:

weekNum = [20 21 22 23];
t = datetime(2018, 1, 1, 'Format', 'dd-MMMM-yyyy');  % First day of the year
t = t - days(weekday(t)-1) + days((weekNum-1).*7);
Run Code Online (Sandbox Code Playgroud)

这将为您提供以下星期日日期时间数组:

t = 

  1×4 datetime array

   13-May-2018    20-May-2018    27-May-2018    03-June-2018
Run Code Online (Sandbox Code Playgroud)

你可以使用week以下方法确认它有效:

>> week(t)

ans =

    20    21    22    23  % Same as weekNum
Run Code Online (Sandbox Code Playgroud)

注意:第一周通常定义为包括1月1日的一周,并且可以包括上一年的天数.这意味着您可以在2017年的第1周的星期日结束日期.