如何在Matlab中将时间列转换为datetime格式后导出至Python
在Matlab中将数值时间序列转换为datetime并导出CSV的方案
核心思路
你的time是从0开始的连续数值序列,需要先映射到标准datetime格式,再通过**表格(table)**类型整合数据后导出,这样Python能直接识别时间列。
具体步骤
转换数值时间为datetime类型
假设你的时间单位是秒(若为毫秒/微秒,替换seconds为milliseconds/microseconds),以Unix纪元(1970-01-01 00:00:00)为基准时间:% 定义基准时间 base_datetime = datetime(1970, 1, 1, 0, 0, 0); % 将数值时间转换为datetime数组 time_dt = base_datetime + seconds(time);如果你需要自定义起始时间(比如实验开始时间),直接修改
base_datetime即可,例如:base_datetime = datetime(2024, 5, 20, 10, 30, 0); % 2024年5月20日10点30分构建包含datetime的数据集表格
由于普通矩阵无法混合datetime和数值类型,需用table整合数据:% 替换variable_u、variable_y为你的实际变量,自定义列名方便识别 data_table = table(time_dt, variable_u, variable_y, ... 'VariableNames', {'time', 'u_signal', 'y_signal'});导出为CSV文件
使用writetable函数导出,该函数会自动将datetime序列转为标准字符串格式,Python读取时可直接解析:writetable(data_table, 'processed_data.csv');
Python端读取验证
用pandas读取时,可指定解析时间列:
import pandas as pd df = pd.read_csv('processed_data.csv', parse_dates=['time']) # 查看数据类型,time列会显示为datetime64 print(df.dtypes)
内容的提问来源于stack exchange,提问作者achour99
相关产品推荐
相关产品推荐

