如何將matlab數(shù)據(jù)導入到Python中使用
相信不少小伙伴都遇到過和我一樣的問題,就是在嘗試使用scipy.io.loadmat
將matlab
類型的數(shù)據(jù)導入python
中的時候遇到如下錯誤提示。
import scipy as sc # 設(shè)定需要導入的matlab數(shù)據(jù)目錄 path_TE00 = r"D:\Window自帶文件夾\桌面\PIC Design\Lumerical\Tutorials\T02_Taper_2D_PropagateAlongX\taper_modes.mat" # 讀取.mat類型數(shù)據(jù) 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包(超鏈接點擊跳轉(zhuǎn))。
之后使用如下命令代碼即可:
# 導入HDF reader包 import h5py # 設(shè)定需要導入的matlab數(shù)據(jù)目錄 path_TE00 = r"D:\Window自帶文件夾\桌面\PIC Design\Lumerical\Tutorials\T02_Taper_2D_PropagateAlongX\taper_modes.mat" # 讀取.mat類型數(shù)據(jù) modes = h5py.File(path_TE00, "r") # 獲取導入的matlab數(shù)據(jù) data_modes = modes.get('modes') # 將導入的數(shù)據(jù)轉(zhuǎn)換為ndarray格式 data_modes_final = np.array(data_modes) # 打印導入后的數(shù)據(jù) 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')
語句中的參數(shù)'modes'
表示的是在matlab
工作區(qū)中用于保存數(shù)據(jù)的變量名稱,這個一定要注意,如果變量名稱給錯了,那仍然無法讀取到數(shù)據(jù),會得到一個None
的返回值。對應modes
的變量如下圖所示:
注意:參數(shù)是變量名,變量名,變量名,重要的事情說三遍。
上面是導入一般類型的數(shù)據(jù),通常數(shù)據(jù)導入后在python
中以一個二維數(shù)組顯示。但是對于復數(shù)類型的數(shù)據(jù),導入python
后還需要進行一個復數(shù)類型轉(zhuǎn)換,讀者可以自行研究,如果有遇到相同問題解決不了的,可以在評論區(qū)留言給我,后續(xù)我會添加復數(shù)數(shù)據(jù)的導入操作方法。
到此這篇關(guān)于如何將matlab數(shù)據(jù)導入到Python中使用的文章就介紹到這了,更多相關(guān)matlab數(shù)據(jù)導入到Python中使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
langchain使用自定義example?selector示例解析
這篇文章主要為大家介紹了langchain使用自定義example?selector示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08使用Py2Exe for Python3創(chuàng)建自己的exe程序示例
今天小編就為大家分享一篇使用Py2Exe for Python3創(chuàng)建自己的exe程序示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python 利用pandas和mysql-connector獲取Excel數(shù)據(jù)寫入到MySQL數(shù)據(jù)庫
在實際應用中,我們可能需要將Excel表格中的數(shù)據(jù)導入到MySQL數(shù)據(jù)庫中,以便于進行進一步的數(shù)據(jù)分析和處理,本文將介紹如何使用Python將Excel表格中的數(shù)據(jù)插入到MySQL數(shù)據(jù)庫中,需要的朋友可以參考下2023-10-10Python實現(xiàn)如何根據(jù)文件后綴進行分類
本文主要為大家詳細介紹了如何通過python實現(xiàn)根據(jù)文件后綴實現(xiàn)分類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以關(guān)注一下2021-12-12