Matlab导入.xlsx时间数据作为横坐标画图

主体

首先matlab的 readtable 得到的变量类型是 table,这个怎么转换还没有学习跟上= =所以这个还是用的 xlsread 导入的变量。当然如果用下文的办法整理了excel中数据之后,readtable导入,table2array 转换后还是能用的。
其次matlab由于不能直接读取时间(也许有,希望大佬不吝赐教),所以要将excel的时间转换为数值后
下面开整

第一步: 将excel中的时间数据,转换为数值

选中表格—右键—设置单元格格式—数值

这个时候excel表中得到了从‘1900-1-1’到该日期所经过的天数
在这里插入图片描述
第二步:在得到的时间数值加上 693960 转换 matlab 体系下的时间值
这是因为matlab的初始时间是从‘0000-1-1’开始的。

days(datetime('1900-1-1')-datetime('0000-1-1'));
% 结果  693961

但在excel中已经将‘1900-1-1’这一天算上了,因此实际只需要加上 693960 即可。
在这里插入图片描述
可以在matlab 里检验一下

datetime(738616,'ConvertFrom','datenum');
%ans = 

%  datetime

 % 2022-04-05

第三步:导入数据,并转换为 datetime 格式
将处理好的数据导入matlab,并转换为时间格式

date = xlsread(filename);
date = datetime(date,'ConvertFrom','datenum');

然后就可以直接用 date (datetime 格式)画图了!
但是这时候画出来的图下方日期是 如下图
在这里插入图片描述
如果不是很满意,可以用

plot(date,y) % y 是你的数据
xtickformat('yyyy-MM-dd') %指定 x 轴标签格式

如果有其他更方便的方法,求指路!

关于轴标签类型

数字刻度标签

在这里插入图片描述
分别是“美元、欧元、英镑、日元、° 和百分号”。最后一个是广泛运用的一种,后面会提到。
其中左右两边都可以加 text,例如

xtickformat('RMB %g') 

在这里插入图片描述

如果要制定数字其他的形式,常用的是
在这里插入图片描述
option flags
在这里插入图片描述

符号解释
,增加千分位分隔符
+数字前增加符号 ‘+’
-同理,数字前增加符号 ‘-’
0用前端 ’0‘ 代替 ’空格‘ 补充字段
#即使精度为0,末尾也打印小数点

Conversion Characters
在这里插入图片描述
example 解释得很清楚。

时间或日期标签

在这里插入图片描述
官方给的例子:

  • Example: xtickformat(‘yyyy-MM-dd’) —> 2016-04-19.

  • Example: xtickformat(‘eeee, MMMM d, yyyy HH:mm:ss’) —> Saturday, April 19, 2016 21:41:06.

  • Example: xtickformat(‘MMMM d, yyyy HH:mm:ss Z’) —> April 19, 2016 21:41:06 -0400.

持续时间形式

在这里插入图片描述

  • 12
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值