python的数据与matlab互通:SciPy

有时候需要利用python进行科学计算,但需要Matlab进行交互式画图,因此需要掌握python与matlab数据互通的技巧:SciPy

  • SciPy 提供了与 Matlab 的交互的方法。
  • SciPy 的 scipy.io 模块提供了很多函数来处理 Matlab 的数组。

一、python利用scipy.io.savemat()存储日志

参考:https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.savemat.html

(一)语法

scipy.io.savemat(file_name, mdict, appendmat = Trueformat = '5', long_field_names = False, do_compression = False, oned_as = 'row')
参数
file_name:str
      .mat 文件的名称(如果没有扩展名,需要设置appendmat == True)
mdict:dict
      从中保存 matfile 变量的字典。
appendmat:布尔值,可选
      True(默认值)将 .mat 扩展名附加到给定文件名的末尾(如果尚不存在)。
fomat:{'5', '4'},字符串,可选
      '5'(默认值)用于 MATLAB 5 及更高版本(至 7.2),'4' 用于 MATLAB 4 .mat 文件。
long_field_names:布尔型,可选
      False(默认值)- 结构中的最大字段名称长度为 31 个字符,这是记录的最大长度。True - 结构中的最大字段名称长度为 63 个字符,适用于 MATLAB 7.6+。
do_compression:布尔值,可选
      是否在写入时压缩矩阵。默认为假。
oned_as :{'row', 'column'},可选
      如果是 'column',则将一维 NumPy 数组写为列向量。如果为“行”,则将一维 NumPy 数组写为行向量。

(二)例子

from scipy import io
import numpy as np
arr = np.arange(10)

io.savemat('arr.mat', {"vec": arr})
#如果存入多组数据
io.savemat('saveddata.mat', {'xi': xi,'yi': yi,'ui': ui,'vi': vi})

二、利用matlab读取mat日志的方法

(一)载入日志文件

mat_struct=load('C:\Users\XXX\Desktop\task3-2022y01m23d-17h52m.mat');

(二)取出元素

mat_struct=load('C:\Users\XXX\Desktop\task3-2022y01m23d-17h52m.mat');
ans=mat_struct.ans;
select_info=mat_struct.select_info;
select_info_p=mat_struct.select_info_p;
clear mat_struct;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后厂村路蔡徐坤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值