在 MATLAB 中处理日期

Working with dates in MATLAB

如何让 MATLAB 在绘图的 x 轴上显示日期和时间?

我正在尝试制作一个图表,显示随着时间的推移以厘米为单位的水位 (WL),如图所示:

现在,我绘图的 x 轴仅显示索引,但我希望它按以下顺序显示日期和时间:年、月、日、小时、分钟。格式并不重要,只要它是可读的并且按顺序排列即可。我也希望能够控制刻度,这样用户就不会不知所措。

在 MATLAB 中,我一直按以下方式处理日期:

  1. 包含 yyyyMMddhhmm 格式的日期的数组。
  2. 包含yyyy、MM、dd等的多个数组。

WL 和我的 DATES 数组长度相同,它们的排列方式是 WL(i) 对应 DATES(i)。现在,我的代码如下所示:

figure(1)
hold on
plot(WL)
xlabel('Date')
ylabel('WL [cm]')

您可以分两步完成:

1) 将您的 date/time 值转换为 datenums

2) 使用 datetick 使你的 x 轴成为你想要的方式

假设您的 WLDATES 看起来像这样:

WL = [6 4 5];
DATES = [201412241842
    201412251830
    201412261921];

您可以执行以下操作将 DATES 转换为 datetime 格式:

dates = datetime(num2str(DATES),'InputFormat','yyyyMMddHHmm');

然后你就把它画出来:

plot(dates,WL)