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

如何将MATLAB datetime数组导入Python并获取预期时间戳?

解决MATLAB Datetime数组导入Python的不一致问题

MATLAB的datetime对象在.mat文件中是以结构体形式存储的,scipy.io.loadmat无法直接将其映射为Python的时间对象,导致读取结果与MATLAB显示差异巨大。以下是可行的解决方法:

方法1:解析scipy读取的结构体数据

1. 读取.mat文件

import scipy.io
import numpy as np
import pandas as pd

# 替换为你的.mat文件路径
mat_data = scipy.io.loadmat("your_datetime_file.mat")
# 替换为MATLAB中datetime数组的变量名
mat_dt_struct = mat_data["your_time_variable"]

2. 提取时间分量并转换

MATLAB datetime结构体包含Year、Month、Day、Hour、Minute、Second等字段,提取后组合为Python可识别的时间格式:

# 展平scipy读取的二维数组分量
years = mat_dt_struct["Year"][0, 0].flatten()
months = mat_dt_struct["Month"][0, 0].flatten()
days = mat_dt_struct["Day"][0, 0].flatten()
hours = mat_dt_struct["Hour"][0, 0].flatten()
minutes = mat_dt_struct["Minute"][0, 0].flatten()
seconds = mat_dt_struct["Second"][0, 0].flatten()

# 生成numpy datetime64数组
python_dt_array = np.array(
    [f"{y}-{m:02d}-{d:02d} {h:02d}:{mi:02d}:{s:06.3f}" 
     for y, m, d, h, mi, s in zip(years, months, days, hours, minutes, seconds)],
    dtype="datetime64[ns]"
)

方法2:使用mat73库直接读取(推荐)

若你的.mat文件是MATLAB R2019b及以上版本保存的,mat73库可以直接解析MATLAB datetime为Python的datetime64数组,无需手动解析:

# 先安装库:pip install mat73
import mat73

data = mat73.loadmat("your_datetime_file.mat")
python_dt_array = data["your_time_variable"]  # 直接得到与MATLAB一致的时间数组

验证转换结果

打印前几个元素对比MATLAB中的显示:

print(python_dt_array[:5])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:32:40