【问题标题】:Plotting time vector with date Matlab用日期 Matlab 绘制时间向量
【发布时间】:2018-01-02 17:07:57
【问题描述】:

我正在尝试创建一个整周的时间向量,步长为 15 分钟。我想稍后用我的数据绘制它。我设法创建了一个单日 15 分钟步长向量,但是当我用我的数据绘制它时,我不能(它的长度是 95 而不是 96)。

 dv = 1/24:1/96:24/24+2/96;
 datestr(dv)

另外,我不想以 'dd:MM hh:mm) 格式显示日期和时间。这是我目前的代码,我在 bsxfun 中遇到错误,它说操作数必须是数字数组。

    t1 = datetime(2013,11,1,8,0,0,'Format','MM:dd: HH:mm:ss');
    t2 = datetime(2013,11,7,8,0,0,'Format','MM:dd: HH:mm:ss')
    days = t1:t2
    % days = days(~ismember(weekday(days),[1 7]));
    out  = bsxfun(@plus, days, dv.');
    datestr(out)

最后,当我得到整周的向量时,它是一个字符串格式,我怎样才能将它转换为数字并绘制它? 如果您能提供正确的参考资料来指导我,那就太好了,因为我是这个领域的新手。

谢谢

【问题讨论】:

    标签: matlab


    【解决方案1】:

    到第一部分:如果您想创建一天的时间窗口,我建议您在 00:00(12:00 AM)开始您的 15 分钟窗口,并在 23:45(11:45 PM)结束它们) 所以他们都在同一个日期。作为向量,您需要从 0 开始到 1-(1/96) 的数字,因为 1 是一整天,您不希望第二天的 00:00 作为第 97 个值。如果您想将多天放在一起,这样就不会重叠,这一点尤其重要。

    dv = 0:1/96:1-1/96;
    datestr(dv)
    

    对于第二部分,我强烈建议您查看 MATLAB 中的 datetime(如果您是新手,请输入 help datetime,然后单击“日期时间的参考页面”)并阅读该部分和对持续时间的引用,因为我发现这些一起工作很棒。如果您想更早/更晚地创建日期时间,您可以使用减号或加号,您可以比较 (bsxfun的,我不知道它是否有效,但我会推荐一种不同的方法。

    t1 = datetime(2013,11,1,8,0,0,'Format','MM:dd: HH:mm:ss'); % as before
    t2 = datetime(2013,11,8,8,0,0,'Format','MM:dd: HH:mm:ss'); % changed the date +1 
    dur1 = duration(0,15,0); % a 'duration' type with the value of 15minutes
    
    t2=t2-dur1; %taking 15 minutes of the t2 to get rid of the 00:00 of the last day
    days = t1:dur1:t2; % from t1 to t2 in 15minute-Steps 96per day*7days should be 
    
    plot(days,rand(length(days),1)); % you can use it directly for plotting
    datestr(days) %only if you want to write it to a file 
    

    如果你使用 datestr 你的 datetime 变成一个字符串,如果你想把它写到一个文件中你必须这样做(如果你输出到 excel 我认为可能不是这样),但是你不能使用 datetimes没有了。

    我希望这可以帮助您入门

    【讨论】:

    • 非常感谢您回答了我的问题!我想如果我想显示一天,我可以将 t1 和 t2 更改为 t1 = datetime(2013,11,1,0,0,0,'Format','MM:dd: HH:mm:ss '); t2 = datetime(2013,11,1,24,0,0,'格式','MM:dd: HH:mm:ss');
    猜你喜欢
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 2011-07-03
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    相关资源
    最近更新 更多