我有一个包含超过 600 万条记录的 MySQL 表,每条记录都有一个纪元时间戳。我需要绘制一天中的所有时间戳。换句话说,我需要查看在上午 7 点到 8 点、上午 8 点到 9 点等之间有多少个时间戳 - 对于一天中的所有 24 小时块。我不需要它们按星期或月份的日期绘制,只需要一天中的时间。每个时间戳都采用 UTC。
有人能帮我吗?
我有一个包含超过 600 万条记录的 MySQL 表,每条记录都有一个纪元时间戳。我需要绘制一天中的所有时间戳。换句话说,我需要查看在上午 7 点到 8 点、上午 8 点到 9 点等之间有多少个时间戳 - 对于一天中的所有 24 小时块。我不需要它们按星期或月份的日期绘制,只需要一天中的时间。每个时间戳都采用 UTC。
有人能帮我吗?
您可以使用 MySQL 的FROM_UNIXTIME
函数从数据库中获取日期字符串,并将结果转储到文件中,然后您可以将其读入 MATLAB。接下来,提取每条记录的时间的方法之一是使用 MATLAB 的datevec
函数,分别获取日期字符串的每个组件:
datevec('2007-11-30 10:30:19')
ans =
2007 11 30 10 30 19
例如,如果您将数据作为带有日期字符串的长向量读入,则可以应用datevec
到该向量,然后获取结果矩阵的“小时列”。然后,您可以使用hist
或histc
函数制作计数的直方图,具体取决于您是要指定 bin 中心还是 bin 边缘。如果您有一个 hour 专栏H
,那么应该可以使用类似的东西hist(H, 0:23)
。对于数据的性质,该histc
函数可能更自然一些,但涉及的程度略高;检查文档。