You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Unix纪元微秒整数向量转换为Matlab Timetable适用的Duration类型

将Unix纪元微秒整数向量转换为Matlab Timetable可用的Duration类型

现有一组表示Unix纪元以来微秒数的整数向量,示例代码如下:

datetimes = [1679909400000000;1679909500000000;1679909600000000]

请问如何将其转换为Matlab中可用于Timetable的Duration类型?


转换方案

这些整数是Unix纪元(1970-01-01 00:00:00 UTC)以来的微秒数,要转成Matlab的duration类型(可直接用于Timetable),有两种简洁方法:

方法一:通过秒数转换

先把微秒数除以1e6转成秒数,再用seconds()函数生成Duration对象:

% 微秒转秒,再生成Duration
durations = seconds(datetimes / 1e6);

验证类型:

class(durations)
% 输出:'duration'

方法二:直接指定单位生成Duration

用duration()函数,明确指定时、分、秒参数(秒部分传入微秒转换后的值),还可以自定义显示格式:

% 生成带微秒精度的Duration,指定显示格式
durations = duration(0, 0, datetimes / 1e6, 'Format', 'hh:mm:ss.SSSSSS');

用于创建Timetable的示例

假设你有对应的数据列,直接用转换后的Duration作为行时间:

data = [1; 2; 3];
tt = timetable(durations, data);

内容的提问来源于stack exchange,提问作者BAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:32:47