python調用matlab的方法詳解
1.python版本與matlab版本的對應關系
在MAC中安裝瞭Anaconda3,其中自帶的python版本為3.8,通過python版本與matlab版本的對應關系,至少要下載R2020b及其以上版本的matlab,於是安裝瞭R2021b版本的matlab,這時就能保證matlab與python的版本相對應,於是就能在python中調用matlab代碼。
2.import matlab.engine的問題
在python中使用import matlab.engine時,會提示:ImportError: No module named matlab.engine,為瞭解決這個問題,需要從下面幾個步驟下手:
(1)在matlab的命令行窗口中輸入:
matlabroot
得到matlab的安裝目錄:
>> matlabroot ans = '/Applications/MATLAB_R2021b.app' >>
接著在MAC自帶的終端中,進入到matlab的安裝目錄中python的目錄下:
d@DdeMacBook-Pro ~ % cd /Applications/MATLAB_R2021b.app/extern/engines/python d@DdeMacBook-Pro python %
接著依次執行下面的操作:
python setup.py build --build-base="builddir" install python setup.py install --prefix="installdir" python setup.py build --build-base="builddir" install --prefix="installdir" python setup.py install --user
通過上述操作,將得到下面這些文件夾:
(2)執行上述操作之後,python中還會顯示不能導入matlab.engine模塊,這時還需要執行下面這個操作:將matlab安裝目錄下的/Applications/MATLAB_R2021b.app/extern/engines/python/build/lib
下的matlab文件夾拷貝到python中包的安裝目錄,也就是:/Users/dpp/opt/anaconda3/lib/python3.8/site-packages/
中,這時就已經解決瞭matlab.engine模塊導入失敗的問題。
(3)如果是windows系統,則可以參考下面兩個博客:參考1、參考2。
3.代碼報錯:please use torch.load with map_location=torch.device(‘cpu‘) to map your storages to the CPU的問題
在代碼中使用 pytorch加載模型時,如果電腦沒有GPU,則會報錯please use torch.load with map_location=torch.device(‘cpu‘) to map your storages to the CPU,這時需要將加載模型的代碼采用如下的修改方式:
修改前: checkpoint = torch.load(file_name)
修改後: checkpoint = torch.load(file_name, map_location='cpu')
推薦閱讀:
- 解決python調用matlab時的一些常見問題
- python matlab庫簡單用法講解
- Python .py生成.pyd文件並打包.exe 的註意事項說明
- 基於pyinstaller超級加密操作(加殼和轉c)
- python 如何查看pytorch版本