我有一些 MAT 文件,我想以 CSV 格式输出。如果我放弃,我可以将它们保存为 .txt,但我真的很想知道如何在 CSV 中执行此操作。
我的问题是我对不同的频道有不同的时间戳。我相信我有一些低至 0.5 赫兹的频道和一些大约 10 赫兹的频道。不过,它们似乎并没有完全对齐。有人建议零阶保留(我不明白如何执行),但由于我将这些数据作为“纯正”发布,我真的不想调整时间戳。
channels = []
for key in matfile.keys():
if key.startswith('CAN'):
channels.append(str(key) + '_time')
channels.append(key)
output = {}
for channel in channels:
if channel.endswith('_time'):
channel_time = channel[0:-5]
output[channel] = matfile[channel_time].item()[6]
else:
output[channel] = matfile[channel].item()[7].item()[0]
with open(path_plus_title, 'wb') as outfile:
writer = csv.writer(outfile)
writer.writerow(channels)
writer.writerows(zip(*(output[k] for k in channels)))
这给了我我想要的频道,按照频道时间戳后跟频道的顺序......但它在到达最短数据列的末尾后停止写入。
我想用空格或零或任何东西填充较短的列,以保持数据直截了当,并清楚地表明这是数据结束的地方。是否有一种我错过的按列方式来做到这一点?