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')

推薦閱讀: