zoukankan      html  css  js  c++  java
  • python——读取MATLAB数据文件 *.mat

    鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。
    # adapted from http://blog.csdn.net/rumswell/article/details/8545087
    import scipy.io as sio  
    #import matplotlib.pyplot as plt
    from pylab import *
    import numpy as np  
      
    matfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
    data=sio.loadmat(matfn)  
      
    xx=data['matdata']
    figure(1)
    plot(xx)
    show()
     
    以下代码(http://blog.csdn.net/gadfly7/article/details/9906315)是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。
    from numpy import *
     
    def file2list(filename):  
        fr = open(filename)  
        array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  
        num = len(array)  
        returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  
        index = 0   
        for line in array:  
            line = line.strip()#去掉一行后的回车符号  
            linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  
            returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  
            index +=1  
        return returnMat
     
    fname = 'E:\Pythonrun\myuse\num_data.txt'
    data= file2list(fname)
  • 相关阅读:
    CF1290E Cartesian Tree
    【LeetCode】11. 盛最多水的容器
    【LeetCode】10. 正则表达式匹配
    【LeetCode】9. 回文数
    【LeetCode】8. 字符串转换整数 (atoi)
    【LeetCode】7. 整数反转
    【LeetCode】6. Z 字形变换
    【LeetCode】5. 最长回文子串
    【LeetCode】4. 寻找两个正序数组的中位数[待补充]
    【LeetCode】3. 无重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/5772571.html
Copyright © 2011-2022 走看看