java mat转csv_用python将mat文件中的变量批量转换成csv格式

用python将mat文件中的变量批量转换成csv格式

最近几天一直在处理怎么将Mat文件中的变量自动读取并转换为csv数据格式,困扰了两天,终于找对方法啦

最开始以为只有在Matlab中进行load操作将变量加载到工作区中才能看到其中所包含的变量,其实错了!!!

load('matlab.mat')#加载数据

在Matlab工作区中就会显示刚刚Mat文件下的所有变量(矩阵)

myvars = who#可以获得工作区中所有变量的名称

以为通过遍历所有名称就可以访问各个矩阵了,结果名字虽相同但类型不同,“披着羊皮的狼”,原始变量因为代表的是一个矩阵,数据类型为double,而获得的变量名字确是string类型的,所以不能通过遍历名字直接访问,在matlab中使用class()可以查看数据类型。

这里在介绍一下matlab中数字和字符型之间转换的函数:num2str()将数字转化成字符型,double2str(),str2num()将字符转换成数字型,如果数字为double,使用str2double()

下面主要介绍一下使用python读取并将变量转换成相应名称的csv文件(这里我将原始数据进行了转置,根据自己需求进行改动代码)

import numpy as np

import h5py

import pandas as pd

f = h5py.File('C:\\Users\\Administrator\\Desktop\\matlab.mat','r')#原始数据路径

variables = f.items()

for var in variables:

name = var[0]

data = var[1]

if type(data) is h5py.Dataset:

# If DataSet pull the associated Data

# If not a dataset, you may need to access the element sub-items

value = data.value

#data1 = list(data.value)[-1]

dfdata = pd.DataFrame(data=value)

datapath1 = 'C:\\Users\\Administrator\\Desktop\\mat\\'+name+".csv"#生成文件路径,新建一个文件夹

dfdata.to_csv(datapath1, index=False, header=False)

转置成功啦!找了很多方法都没有符合该类问题的解决方案,如何查询问题是关键。

用python将mat文件中的变量批量转换成csv格式 相关文章

二、安装启动

2.1、安装 (1)、解压后 即可使用 解压缩文件拷贝到 linux 下 /usr/local/ (2)、三个配置文件 schema.xml:定义逻辑库,表、分片节点等内容。 rule.xml: 定义分片规则。 server.xml:定义用户以及系统相关变量,如端口等。 2.2、启动 (1)、修改配置文件——s

Security and Cryptography in Python - Block Cipher(2)

Security and Cryptography in Python - Block Cipher(2) Double DES from pyDes import *import randommessage = "01234567"key_11 = random.randrange(0, 256)key_1 = bytes([key_11, 0, 0, 0, 0, 0, 0, 0])key_21 = random.randrange(0, 256)key_2 = byte

PHP——date()函数

语法 date(format,timestamp) format 规定时间戳的格式( 必须 ) timestamp 规定时间戳,默认是当前时间和日期( 可选 ) 用途 获得简单的日期 htmlbodyphpheader("content-type:text/html;charset=utf-8");echo "今天是 " . date("Y/m/d") . "br";echo "今

logstash读取多个配置文件启动

多个配置文件 user.conf input {kafka {bootstrap_servers = "hadoop003:9092"client_id = "user"group_id = "yiyang_user"auto_offset_reset = "latest"consumer_threads = 5decorate_events = truetopics = "yiyang_2"type = "user"codec = "json"}}filter

Qt简单的文件创建和读写

1 QFile fp; //要包含必要的头文件,这里省略 2 QDir(dir); 3 QString path("./"),filename("test.txt"); 4 QDebug qdebug(QtWarningMsg) ; 5 fp.setFileName(path+filename); //为fp指定包含路径的文件名 6 if(fp.exists()) //若存在,读取 7 { 8 QString(t

python3之集合(set,frozenset)

一、集合 集合中的元素无序且不可重复 集合是无序的,不记录元素位置或插入顺序,因此,集合不支持索引,切片或其他序列操作 包括 set: 可变的集合类型frozenset: 不可变的集合类型 定义 set_name = {value1, value2,...}set_name = set(iterable)frozenset_name

python3之字典(dict)

一、字典 一种由键值对(key-value)组成的具有映射关系的可变数据类型 key-value称为项 key可以是任意不可变数据类型,value可以是任意数据类型 key必须唯一,value不必唯一 定义 dict_name = {key1: value1, key2: value2,...}dict_name = dict(key1=value1, k

python3之元组(tuple)

一、元组 元组和列表类似,由一系列按特定顺序排列的元素组成,但是元组是不可变的 定义 tuple_name = (value1, value2,...)或者tuple_name = tuple(iterable 二、元组操作 1 索引 tuple_1 = tuple(r'https://docs.python.org/release/3.8.4/library/stdtypes.

python3之列表(list)

一、序列 包含多项数据,数据项(成员)按顺序排列,可以通过索引来访问成员 序列类型 基础序列类型: list, tuple, range文本字符串序列: string二进制数据序列: bytes, bytearray, memoryview 二、列表 由一系列按特定顺序排列的元素组成,可以随时添加和删除其

【SpringMVC】使用注解开发的配置文件框架

配置这三个就可以。 controller import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HelloController { //真实访问地址 : 项

你可能感兴趣的:(java,mat转csv)