• matlab作时间相关的图


    时间相关的图指横坐标是时间或者日期,作图需要先掌握两点:

    1.matlab中与时间、日期相关的函数

    2.以时间为坐标轴作图需要注意的事项

    matlab中与时间、日期相关的函数

    • 本文作图时会用到的函数:

    datenum:从0000年(公元0年)到给定时间的天数,返回值为double型,详情使用help datenum查看。

    • 一些相关的函数:

    datestr:日期数字转换为字符串

    clock:获取当前日期和时间的数值

    now:前时间至0000年的天数

    以时间为坐标轴作图需要注意的事项

    matlab似乎不能直接以时间字符串作为x轴来作图(我不确定,不过我没有找到能行的方法),既然不能直接用字符串,那就要想办法将时间字符串转换为数值型,方法就是使用datenum函数。

    例如有如下数据:

    % data.txt
    2017/6/6    1
    2017/6/7    2
    2017/6/8    3
    2017/6/9    4
    2017/6/10   5
    2017/6/15   6
    2017/6/25   7
    2017/7/13   8

    读取后直接作图:

    % 错误代码 matlab2014
    alldata = importdata('data.txt');
    x = alldata.textdata;
    y = alldata.data;
    plot(x, y);

    会出现如下错误:

    错误使用 plot
    Invalid first data argument

    故做如下修改:

    % 正确代码
    clc; clear;
    alldata = importdata('data.txt');
    x = alldata.textdata;
    xnum = datenum(x); % 将日期转为数值
    y = alldata.data;
    plot(xnum, y);
    datetick('x', 26); % 将坐标轴设置为日期格式

    res

    所以,要作为时间为坐标轴的图,大体思路就是会将时间转换为数值型,画图,再将坐标轴的设置为时间格式。

    关于excel

    想起了exel,在我的excel 2013中作如下图:

    1

    有看出什么问题吗?对,它的横坐标是等间隔显示的,但是实际数据明明不是等间隔的!不知道是不是有什么特殊的设置方法可以让它正确显示。不过如果横坐标是时间倒是正确的:

    2

    参考:

    MATLAB常用日期和时间函数

    Matlab中处理日期与时间的函数详解

    matlab画图的简单问题 横坐标怎么换成时间-ilovematlab

  • 相关阅读:
    数据库生成说明
    Android 的 SurfaceView 双缓冲应用
    一些and知识 和ui
    weibo11
    android总结
    weibo14
    weibo9
    weibo12
    weibo10
    在线人数的统计
  • 原文地址:https://www.cnblogs.com/shanchuan/p/8150276.html
Copyright © 2020-2023  润新知