如何将matlab数据导入到Python中使用

 更新时间:2022年12月15日 09:38:04   作者:勤奋的大熊猫  
这篇文章主要介绍了如何将matlab数据导入到Python中使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

相信不少小伙伴都遇到过和我一样的问题,就是在尝试使用scipy.io.loadmatmatlab类型的数据导入python中的时候遇到如下错误提示。

import scipy as sc

# 设定需要导入的matlab数据目录
path_TE00 = r"D:\Window自带文件夹\桌面\PIC Design\Lumerical\Tutorials\T02_Taper_2D_PropagateAlongX\taper_modes.mat"
# 读取.mat类型数据
data = sc.io.loadmat(path_TE00)

Traceback (most recent call last):
  File "D:\Window自带文件夹\桌面\Calculation\debug.py", line 14, in <module>
    data = sc.io.loadmat(path_TE00)
  File "D:\Study Softwares\Python 3.9.11\lib\site-packages\scipy\io\matlab\_mio.py", line 225, in loadmat
    MR, _ = mat_reader_factory(f, **kwargs)
  File "D:\Study Softwares\Python 3.9.11\lib\site-packages\scipy\io\matlab\_mio.py", line 80, in mat_reader_factory
    raise NotImplementedError('Please use HDF reader for matlab v7.3 files')
NotImplementedError: Please use HDF reader for matlab v7.3 files

这个提示的意思就是说,当matlab的版本高于7.3时,使用sc.io.loadmat()去导入matlab文件就变得不可行了。并且提示了我们应该使用HDF reader包去解决这个问题。我相信有很多小伙伴去尝试了,但是依然无法导入,这里做一下说明。首先,在windows命令行中使用如下命令安装HDF reader包。具体教程可以查看------Python 使用pip在windows命令行中安装HDF reader包(超链接点击跳转)。

之后使用如下命令代码即可:

# 导入HDF reader包
import h5py

# 设定需要导入的matlab数据目录
path_TE00 = r"D:\Window自带文件夹\桌面\PIC Design\Lumerical\Tutorials\T02_Taper_2D_PropagateAlongX\taper_modes.mat"
# 读取.mat类型数据
modes = h5py.File(path_TE00, "r")
# 获取导入的matlab数据
data_modes = modes.get('modes')
# 将导入的数据转换为ndarray格式
data_modes_final = np.array(data_modes)
# 打印导入后的数据
print(data_modes_final)
"""
result:
[[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
  19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
  37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.]]
"""

需要注意,data_modes = modes.get('modes')语句中的参数'modes'表示的是在matlab工作区中用于保存数据的变量名称,这个一定要注意,如果变量名称给错了,那仍然无法读取到数据,会得到一个None的返回值。对应modes的变量如下图所示:

请添加图片描述

注意:参数是变量名,变量名,变量名,重要的事情说三遍。

上面是导入一般类型的数据,通常数据导入后在python中以一个二维数组显示。但是对于复数类型的数据,导入python后还需要进行一个复数类型转换,读者可以自行研究,如果有遇到相同问题解决不了的,可以在评论区留言给我,后续我会添加复数数据的导入操作方法。

到此这篇关于如何将matlab数据导入到Python中使用的文章就介绍到这了,更多相关matlab数据导入到Python中使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pyspark创建DataFrame的几种方法

    pyspark创建DataFrame的几种方法

    为了便于操作,使用pyspark时我们通常将数据转为DataFrame的形式来完成清洗和分析动作。那么你知道pyspark创建DataFrame有几种方法吗,下面就一起来了解一下
    2021-05-05
  • Python学习之不同数据类型间的转换总结

    Python学习之不同数据类型间的转换总结

    类型转换,就是将自身的数据类型变成新的数据类型,并拥有新的数据类型的所有功能的过程。本文将详细为大家介绍如何在Python中实现不同数据类型的转换,感兴趣的可以了解一下
    2022-03-03
  • Python中命名元组Namedtuple的使用详解

    Python中命名元组Namedtuple的使用详解

    Python支持一种名为“namedtuple()”的容器字典,它存在于模块“collections”中,下面就跟随小编一起学习一下Namedtuple的具体使用吧
    2023-09-09
  • django+js+ajax实现刷新页面的方法

    django+js+ajax实现刷新页面的方法

    这篇文章主要介绍了django+js+ajax实现刷新页面的方法,结合实例形式分析了django实现ajax刷新页面功能的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • 使用Python的pygame库实现下雪效果的示例代码

    使用Python的pygame库实现下雪效果的示例代码

    这篇文章给大家介绍了如何使用Python的pygame库实现下雪的效果,文中通过代码示例介绍的非常详细,对大家的学习或工作有一定的的帮助,需要的朋友可以参考下
    2024-01-01
  • 在python的类中动态添加属性与生成对象

    在python的类中动态添加属性与生成对象

    这篇文章给大家介绍了如何在python的类中动态添加属性和生成对象,文中通过几个方面来进行介绍,对这感兴趣的朋友们可以学习学习。
    2016-09-09
  • Python实现的拟合二元一次函数功能示例【基于scipy模块】

    Python实现的拟合二元一次函数功能示例【基于scipy模块】

    这篇文章主要介绍了Python实现的拟合二元一次函数功能,结合实例形式分析了Python基于scipy模块进行二元一次函数拟合相关科学运算操作实现技巧,需要的朋友可以参考下
    2018-05-05
  • python实现简单坦克大战

    python实现简单坦克大战

    这篇文章主要为大家详细介绍了python实现简单坦克大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Python简单获取二维数组行列数的方法示例

    Python简单获取二维数组行列数的方法示例

    这篇文章主要介绍了Python简单获取二维数组行列数的方法,结合实例形式分析了Python基于numpy模块的二维数组相关运算技巧,需要的朋友可以参考下
    2018-12-12
  • Python性能优化的20条建议

    Python性能优化的20条建议

    不论什么语言我们都需要注意性能优化问题,提高执行效率,这里就为大家分享下Python的性能优化技巧,需要的朋友可以参考下
    2014-10-10

最新评论