excel - 将日期从 Excel 转换为 Matlab

标签 excel matlab date datetime

我有一系列日期和一些相应的值。 Excel 中的数据格式为“自定义”dd/mm/yyyy hh:mm .
当我尝试在 Matlab 中将此列转换为数组时,为了将其用作绘图的 x 轴,我使用:

a = datestr(xlsread('filename.xlsx',1,'A:A'), 'dd/mm/yyyy HH:MM');

但我得到一个空字符串:0×16。

因此,我无法使用函数 datenum 将其转换为日期数组。 .

我在哪里犯错?编辑:从 hh:mm 传递到 HH:MM 也不起作用。当我只尝试
 a = xlsread('filename.xlsx',1,'A2')

我得到:a = []

最佳答案

根据documentation of datestr 分钟、月份和小时的语法如下:

HH -> Hour in two digits
MM -> Minute in two digits
mm -> Month in two digits

因此,您必须更改 datestr 调用中的语法。 .因为 Excel 和 Matlab 的序列号格式不同,所以要加上 693960 的偏移量从 xlsread 检索到的号码.
dateval    = xlsread('test.xls',1,'A:A') + 693960;
datestring = datestr(dateval, 'dd/mm/yyyy HH:MM');

这将读取 Excel 文件中第一张工作表 ( A ) 的第一列 ( 1 )。为了获得更好的性能,您可以明确指定范围(例如 'A1:A20' )。

代码转换...

enter image description here

... 至:
datestring =
22/06/2015 16:00

编辑:以下代码应适用于您提供的 Excel 文件:
% read from file
tbl = readtable('data.xls','ReadVariableNames',false);
dateval = tbl.(1);
dateval = dateval + 693960;
datestring = datestr(dateval)

% plot with dateticks as x-axis
plot(dateval,tbl.(2))
datetick('x','mmm/yy')
%datetick('x','dd/mmm/yy')  % this is maybe better than only the months

关于excel - 将日期从 Excel 转换为 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30979591/

相关文章:

excel - 以数字格式从日期输出 MONTH() 输出正确,但作为书面日期是错误的

Excel 'If' 公式如何检查值是否小于 x 但大于 y?

vba - 使用 VBA 的日期序列

excel - vba application.ontime返回函数值

Matlab - 匿名函数中的for循环

node.js - 如何在 Node.js Jade 中显示今天的日期?

mysql - 使用交替颜色对 Excel 字段中的重复条目进行颜色编码

matlab - 连接两个字符串元胞数组,中间有一个空格?

R:与 Matlab 的键盘功能等效的命令?

javascript - 将 jquery-ui-timepicker.js 的 'Now' 按钮设置为 UTC 时区