【问题标题】:Unexpected date when ploting a timeseries MATLAB绘制时间序列 MATLAB 时出现意外数据
【发布时间】:2016-02-09 06:21:07
【问题描述】:

我正在尝试使用代表一小时测量值的字符串单元数组绘制timeseries,每 10 秒采样一次。下面是我用来绘制这些数据的代码:

Voltages=[230.1,235.1,.......237];
Time={'13:00:10','13:00:20', '13:00:30'........'14:00:00'};

t=timeseries(Voltages, Time); % Using timeseries function in MATLAB

plot(t);

我还添加了两条直线来显示电压上限和下限,这是我得到的图表:

正如您在最终结果中看到的那样,x 轴上显示了一个意外的日期......

我想做以下事情之一:

  1. 从 x 轴上完全删除日期。
  2. 使用日期字符串 06.05.2015 我在一个变量中,添加此日期而不是 2015 年 1 月 1 日的意外日期。
  3. 从 x 轴中删除意外日期,然后在文本框中添加 06.05.2015。

【问题讨论】:

    标签: matlab time-series matlab-figure


    【解决方案1】:

    来自timeseries class的文档:

    ts = timeseries(data,time) 使用指定的数据和时间创建时序对象。

    上面的timefurther down on the same documentation page 定义的“时间向量”:

    时间向量
    timeseries 对象的时间向量可以是数值(双精度)值或有效的 MATLAB 日期字符串。

    当时间序列TimeInfo.StartDate 属性为空时,数值时间值以指定单位相对于 0(或其他数值)进行测量。在这种情况下,时间向量被描述为相对的(即,它包含与特定开始日期无关的时间值)。

    在绘制timeseries 之前,尝试将TimeInfo.StartDate 设置为您需要的值,如下例所示:

    Time = ['13:00:10';'13:00:20';'13:00:30'];
    Data = [1 2.5 3];
    start_date = '06.05.2015'; %// What you specified
    
    ts = timeseries(Data,Time);
    %// Since a date format separated with dots isn't supported in MATLAB, we replace . => /
    ts.TimeInfo.StartDate = strrep(start_date,'.','/');
    
    plot(ts)
    

    结果:

                    

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 2015-07-03
      • 1970-01-01
      • 2020-04-09
      • 2013-12-25
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多