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]
我正在尝试将 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]