从Matlab中的给定日期减去月份

Mad*_*ddy 0 matlab date date-math

我需要从给定日期减去21个月.

我在下面给出的解决方案只需要我到达给定年份的第一个月:(

[a,b,c]= datevec(date);
b= b-21;
datestr(datenum(a,b,c)) %--> 11-Jan-2011 (WRONG).
Run Code Online (Sandbox Code Playgroud)

我希望答案是2009年6月11日.

Gar*_*han 6

通过日期数字而不是日期向量并使用addtodate:

>> d = datenum(date);
>> e = addtodate(d, -21, 'month');
>> datestr(e)

ans =

11-Jun-2009
Run Code Online (Sandbox Code Playgroud)