Matlab - datetick,datenum问题

时间:2012-11-13 12:32:51

标签: matlab

我正在尝试绘制一组平均2分钟的数据,并且我希望在xaxis上显示日/月时的标签:分钟。我可以在xaxis上看到一些日期,但是有一些问题:

  1. xticks的位置与我的数据不一致(请参阅代码段)
  2. 在我的真实数据中,我有+1000分,所以我想在某些时间间隔标记,比如说每12小时一次。
  3. 下面是一个示例。 任何帮助都会受到欢迎。

    %make date vec
    ds = {'28/01/2000 11:52:00';'28/01/2000 11:54:00';'28/01/2000 11:56:00'};
    x = datenum(ds,'dd/mm/yyyy HH:MM:SS')
    
    y = [1,2,3]; %data
    plot (x,y,'x')
    
    %define start and end date for xAxis
    startDate = x(1)
    endDate = x(end)
    xdata = linspace(startDate,endDate,5)
    set(gca,'XTick',xdata)
    datetick('x','dd/yy HH:MM')
    

3 个答案:

答案 0 :(得分:1)

将选项keepticks添加到datetick来电。修复了我在R2012a上的事情:

datetick('x','dd/yy HH:MM','keepticks')

来源:thisdatetick doc

答案 1 :(得分:0)

一种解决方案是使用datetick()设置自己的勾选标签,而不是使用 dsdata = datestr(xdata, 'dd/yy HH:MM'); set(gca,'XTickLabel',dsdata); 。所以用这两行替换你的最后一行代码:

{{1}}

答案 2 :(得分:0)

这对我来说每分钟都能得到滴答声

    step=2.5/3600;  % minute
    debut = (floor(pts_dthgps(1)/step))*step;
    fin = (floor(pts_dthgps(sz)/step))*step;
    figure(2);
    h=plot(pts_dthgps, pts_vitgps);
    set(gca, 'XTick', [debut:step:fin]);
    datetick('x','HH:MM','keeplimits','keepticks');