开发者

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

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

import scipy as sc

# 设定需要导入的matlab数据目录
path_TE00 = r"D:\Window自带文件夹\桌面\PIC Design\Luwww.devze.commerical\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包(超链接点击跳转)。

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

# 导入HandroidDF 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_finalhttp://www.devze.com = 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. 35php. 36.
  37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.]]
"""

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

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

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

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

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜