精华内容
下载资源
问答
  • python读取mat文件

    2018-08-12 08:19:00
    用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); save matData.mat ...用python3读取并写入mat文件...data = scipy.io.loadmat('matData.mat') # 读取mat文件 # print(data.keys()...

    用matlab生成一个示例mat文件:

    clear;clc
    matrix1 = magic(5);
    matrix2 = magic(6);
    save matData.mat

    用python3读取并写入mat文件:

     

    import scipy.io
    data = scipy.io.loadmat('matData.mat')  # 读取mat文件
    # print(data.keys())   # 查看mat文件中的所有变量
    print(data['matrix1'])
    print(data['matrix2'])
    matrix1 = data['matrix1'] 
    matrix2 = data['matrix2']
    print(matrix1)
    print(matrix2)
    scipy.io.savemat('matData2.mat',{'matrix1':matrix1, 'matrix2':matrix2})  # 写入mat文件
    展开全文
  • Python读取mat文件

    2020-04-12 01:56:00
    参考资料: ... 在处理数据的时候可能会遇到原始数据储存在.mat文件的情况,mat文件当然就是...给你一个mat文件你又想用python处理,该怎么办呢?  在网上找到了一个简单的解决方案,下面连带效果图一起贴出来: imp...

      参考资料:

      https://www.cnblogs.com/anyview/p/5064174.html

      在处理数据的时候可能会遇到原始数据储存在.mat文件的情况,mat文件当然就是matlab中保存的工作区文件啦,里面可能会有一个或者多个矩阵。给你一个mat文件你又想用python处理,该怎么办呢?

      在网上找到了一个简单的解决方案,下面连带效果图一起贴出来:

    import scipy.io as scio
    
    train_imgs_path = 'train_imgs.mat'
    train_imgs = scio.loadmat(train_imgs_path)
    print(train_imgs)
    {'__header__': b'MATLAB 5.0 MAT-file Platform: nt, Created on: Fri Apr  3 17:38:47 2020',
    '__version__': '1.0', 
    '__globals__': [], 
    'train_imgs': array([[0, 0, 0, ..., 0, 0, 0],
           [0, 0, 0, ..., 0, 0, 0],
           [0, 0, 0, ..., 0, 0, 0],
           ...,
           [0, 0, 0, ..., 0, 0, 0],
           [0, 0, 0, ..., 0, 0, 0],
           [0, 0, 0, ..., 0, 0, 0]], dtype=int32)
    }

      显然返回的是一个字典对象,在其中取出我们需要的数组即可。不过我很诧异的是这个数组的数据类型居然是ndarray,不管那么多了,好用就行。

    展开全文
  • python 读取 mat 文件

    万次阅读 2017-05-19 16:18:14
    (1) mat4py库: 功能: 将Matlab 数据导入为基本的Python数据类型。矩阵是以行为组的存储方式(使用列表的列表)。 Matlab结构体Struct和元胞Cell 使用Python的词典表示。 Load data from MAT-file: 函...

    详细参考:https://docs.scipy.org/doc/scipy/reference/tutorial/io.html

    (1) mat4py库:

    功能: 将Matlab 数据导入为基本的Python数据类型。矩阵是以行为组的存储方式(使用列表的列表)。 Matlab结构体Struct和元胞Cell 使用Python的词典表示。

    Load data from MAT-file:

    函数loadmat将存储在MAT-file中的变量加载为简单的Python数据结构,仅使用词典和列表对象。数值数组和cell数组 转换为以行为主的嵌套列表(lists)。压缩数组,消除只含有一个元素的数组。产生的数据结构由简单的类型组成,兼容JSON格式。

    data = loadmat('datafile.mat')

    Save Python data structure to a MAT-file:

    savemat('datafile.mat')

    下面的数据结构不支持:

    • 超过两维的数组
    • 复数数组
    • 稀疏数组
    • 函数数组
    • 对象类
    • 匿名函数类

    使用手册:https://pypi.python.org/pypi/mat4py/0.4.0

    (2) 使用 import scipy.io as sio

    所有的元素都封装在ndarray 中。

    data = sio.loadmat('train_data.mat');
    data = data['data']

    使用手册: https://docs.scipy.org/doc/scipy/reference/tutorial/io.html

    测试:

    结构体数组的生成。分析:list – cell, dict – struct

    % 用来测试 sio.loadmat 和 mat4py.loadmat
    
    student = repmat(struct('name',[],'age',[],'sex',[],'score',[]),2,1);
    
    student(1).name = 'xlh';
    student(1).age  = 22;
    student(1).sex  = 'male';
    student(1).score = [120,1;130,0;100,1];
    
    student(2).name = 'gyl';
    student(2).age  = 20;
    student(2).sex  = 'female';
    student(2).score = [111,0;150,2;140,0];
    
    save('student.mat','student');
    disp('save student.mat over ...');

    方法1:利用 mat4.py访问.mat文件:

    import mat4py
    
    student1 = mat4py.loadmat('student.mat')
    
    student1 = student1['student']
    
    print type(student1)  #dict 
    
    print ','.join(['%s' % key for key,val in student1.iteritems()]) # age,score,name,sex
    
    name  = student1['name'] 
    age   = student1['age']
    sex   = student1['sex']
    score = student1['score']
    
    print name # name list

    控制台输出:

    <type 'dict'>
    age,score,name,sex
    [u'xlh', u'gyl']

    方法2:利用sio访问.mat文件

    
    import scipy.io as sio 
    student2 = sio.loadmat('student.mat')
    student2 = student2['student']
    
    print type(student2) #numpy.ndarray 
    print student2.shape #(2,1)  将结构体的每一行看作是一个数组
    print '----------------'
    name  = []
    age   = []
    sex   = []
    score = []
    
    for id1,va1 in enumerate(student2):
        va2 = va1[0]
        print 'type(va1)',type(va1)
        print 'type(va1[0])',type(va1[0])
        name.append(va2[0])
        age.append(va2[1])
        sex.append(va2[2])
        score.append(va2[3])
    
    print '----------------'
    print name
    print '----------------'
    print student2
    print sex[0][0]

    控制台输出:

    <type 'numpy.ndarray'>
    (2L, 1L)
    ----------------
    type(va1) <type 'numpy.ndarray'>
    type(va1[0]) <type 'numpy.void'>
    type(va1) <type 'numpy.ndarray'>
    type(va1[0]) <type 'numpy.void'>
    ----------------
    [array([u'xlh'], 
          dtype='<U3'), array([u'gyl'], 
          dtype='<U3')]
    ----------------
    [[ (array([u'xlh'], 
          dtype='<U3'), array([[22]], dtype=uint8), array([u'male'], 
          dtype='<U4'), array([[120,   1],
           [130,   0],
           [100,   1]], dtype=uint8))]
     [ (array([u'gyl'], 
          dtype='<U3'), array([[20]], dtype=uint8), array([u'female'], 
          dtype='<U6'), array([[111,   0],
           [150,   2],
           [140,   0]], dtype=uint8))]]
    

    mat4.py 不能处理带有汉字的mat文件。例如将上面的性别’male’改成’男’,则会报错。sio 感觉用起来麻烦。

    展开全文
  • 参考资料:在处理数据的...给你一个mat文件你又想用python处理,该怎么办呢?在网上找到了一个简单的解决方案,下面连带效果图一起贴出来:import scipy.io as sciotrain_imgs_path = ‘train_imgs.mat‘train_imgs...

    参考资料:

    在处理数据的时候可能会遇到原始数据储存在.mat文件的情况,mat文件当然就是matlab中保存的工作区文件啦,里面可能会有一个或者多个矩阵。给你一个mat文件你又想用python处理,该怎么办呢?

    在网上找到了一个简单的解决方案,下面连带效果图一起贴出来:

    import scipy.io as scio

    train_imgs_path = ‘train_imgs.mat‘

    train_imgs = scio.loadmat(train_imgs_path)

    print(train_imgs)

    {‘__header__‘: b‘MATLAB 5.0 MAT-file Platform: nt, Created on: Fri Apr 3 17:38:47 2020‘, ‘__version__‘: ‘1.0‘,

    ‘__globals__‘: [],

    ‘train_imgs‘: array([[0, 0, 0, ..., 0, 0, 0],

    [0, 0, 0, ..., 0, 0, 0],

    [0, 0, 0, ..., 0, 0, 0],

    ...,

    [0, 0, 0, ..., 0, 0, 0],

    [0, 0, 0, ..., 0, 0, 0],

    [0, 0, 0, ..., 0, 0, 0]], dtype=int32)

    }

    显然返回的是一个字典对象,在其中取出我们需要的数组即可。不过我很诧异的是这个数组的数据类型居然是ndarray,不管那么多了,好用就行。

    展开全文
  • python读取mat文件报错问题 在用python读取mat文件时报了以下错误:OSError: Unable to create file 发现是自己mat文件格式的问题,原来直接在matlab中右键另存cell文件,但这种文件python打不开,需要用save函数...
  • 今天小编就为大家分享一篇Python读取mat文件,并转为csv文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 这两天在搞Theano,要把mat文件转成pickle格式载入Python。Matlab是把一维数组当做n*1的矩阵的,但Numpy里还是有vector和matrix的区别,Theano也是对二者做了区分。直接把代码贴出来吧,好像也没什么可讲的 = =from ...
  • python 读取mat文件

    2015-09-07 08:41:00
    import osimport scipy.io as sio import numpy as np ...#matlab文件名 matfn='/home/user/devkit/data/meta_det.mat' data=sio.loadmat(matfn) 转载于:https://www.cnblogs.com/jianyingzhou/p/4787930.html...
  • python读取mat文件中的结构体时,默认其为二维数组形式,默认结构体中的某个字段是二维数组,无论其是一个数,一个向量,还是一个二维数组。现在读取一个mat文件中一个1*10的结构体,及其中的元素读取文件import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 482
精华内容 192
关键字:

python读取mat文件

python 订阅