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

Matlab - Convert matrix of unix timestamps into a grouping of days

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

如果我有这样的矩阵。

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

我想将其转换为。

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

由于 (1392937181, 1392938000) 都在第一天,(1392960000, 1392965000) 出现在第二天, (1342940000, 1342945000, 1342948000) 出现在第三天。保持元素的数量很重要在矩阵中相同,以便我可以根据其他数据绘制它。

我知道这听起来很不寻常,但这是一位教授对我正在写的论文提出的要求,但我想不通。

感谢任何帮助!

干杯

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

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]