Python_mat文件与txt文件的格式转换

  一般,在matlab编写中会得到.mat格式的数组,是matlab特有的存储数据的文件格式,我们有时需要将其转化为txt文件格式来存储数据,那么话不多说,直接上代码:

import scipy.io as sio
import numpy as np
import os

#source_dir_pth存放需要进行转换的.mat文件
source_dir_pth = "params/"

#des_dir_pth存放转换后的txt文件
des_dir_pth = "params_txt/"

mat_filenames = os.listdir(source_dir_pth)
#遍历原文件夹
for mat_filename in mat_filenames:
    #将文件名与后缀分割开,split_filename[0]:文件名,split_filename[1]:文件后缀
    split_filename = os.path.splitext(mat_filename)
    #加载.mat文件  .mat文件是字典的形式,可通过print(matdata)观察
    matdata = sio.loadmat(source_dir_pth + mat_filename)
    #获取所需的数据
    data = matdata[split_filename[0]]
    #由于savetxt()函数只支持一维或二维数组,所以将data展开为一维数组
    data = data.reshape(-1,1)
    #保存到小数点后5位,并以指数计数法表示
    np.savetxt(des_dir_pth+split_filename[0]+".txt",data,fmt='%.5e',delimiter="\n")

  之前在网上找代码的时候,首先是savetxt函数,但是这个函数有个弊端,就是只能转化一维和二维数组,再高就会报错,然后又找到了save函数支持转化多维数组,但是文件格式并不是txt,而是npy文件,并不是我们想要的,所以将数组展开成一维数组就能很好的解决这个问题!!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值