Matlab - 将unix时间戳的矩阵转换为一组天

时间:2015-10-26 08:15:37

标签: matlab matrix unix-timestamp

我正在尝试将unix时间戳矩阵修改为几天的分组。

如果我有这样的矩阵。

matrix = [1392937181, 1392938000, 1392960000,  1392965000, 1342940000, 1342945000, 1342948000]

我想将其转换为。

dayMatrix = [1, 1, 2, 2, 3, 3, 3]

由于(1392937181,1399238000)都在第一天,(1392960000,1399265000)在第二天发生,(1342940000,1342945000,1349248000)在第3天发生。重要的是保持元素的数量矩阵相同,以便我可以将其与其他数据进行对比。

我知道这听起来很不寻常,但教授要求我写一篇论文,但我无法弄明白。

感谢任何帮助!

干杯

1 个答案:

答案 0 :(得分:2)

您可以将unix时间转换为Matlab日期向量a:

matrix = [1392937181, 1392938000, 1392939000,  1392940000, 1342940000, 1342945000, 1342948000]

vec = datevec(matrix/86400 + datenum(1970,1,1));

然后以您的格式获取日期只需减去最小日期并添加1:

dayMatrix = vec(:,3) - min(vec(:,3)) + 1

这将输出

dayMatrix = [1 1 1 1 3 3 3]