【问题标题】:How to convert .mat Matlab file to .csv in Python? [duplicate]如何在 Python 中将 .mat Matlab 文件转换为 .csv? [复制]
【发布时间】:2021-09-28 20:42:30
【问题描述】:

我在 Matlab 的 .mat 文件中有一个 2x8638 矩阵。当我使用以下代码转换为 Python 时:

import scipy.io
mat=scipy.io.loadmat('u_x.mat')

Python 创建一个字典结构。

{'__header__': b'MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: qua jul 21 08:43:40 2021', '__version__': '1.0', '__globals__': [], 'u_x': array([[ 0.00000000e+00,  1.39250848e-07,  8.35505086e-07, ...,
         2.99900000e+01,  2.99968199e+01,  3.00000000e+01],
       [ 0.00000000e+00, -5.48522290e-11, -1.97447920e-09, ...,
         5.29180779e+00,  5.22323380e+00,  5.20265331e+00]])}

​我想转换成 .csv 文件,以便更好地处理数据。

【问题讨论】:

  • 好吧,要么将它保存在 csv 中(而不是 mat),要么编写一个处理字典并将其保存到 csv 的 python 代码。但是这个 python 代码需要从字典中提取数据,所以一旦你这样做了,就没有理由把它写在 csv 上。
  • 当我在 Matlab 中执行此操作时: FileData = load('u_x.mat'); csvwrite('u_x.csv', FileData);出现以下消息:检查函数“real”调用中是否缺少参数或参数数据类型不正确。 csvwrite 中的错误(第 47 行) throw(e)

标签: python matlab csv


【解决方案1】:

如我所见,加载数据中数据的关键是'u_x'(注意:scipy.io.mat 加载到python 字典中。

你可以这样:

import scipy.io
mat=scipy.io.loadmat('u_x.mat')

your_data = mat['u_x']

由于我没有您的数据可供尝试,您可能需要在your_data 上操作transpose,然后使用pandas 将其保存到csv 文件中,如下所示:

import pandas as pd
df = pd.DataFrame(your_data)
df.to_csv('your_data.csv') #your_data.csv final data in csv file

【讨论】:

    猜你喜欢
    • 2018-03-31
    • 2013-10-05
    • 1970-01-01
    • 2015-05-19
    • 2012-10-02
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 2017-12-17
    相关资源
    最近更新 更多