-------------------------------------------------------------------------------------------------
本文簡要介紹了python調用Matlab的.m檔案。
-----------------------------------------------------------------
一、所需工具
1. Python開發環境(本文使用【Anaconda2】整合式開發環境)
-- Anaconda2下載地址:連結:http://pan.baidu.com/s/1qXT7Mna 密碼:dqsf
2. Matlab(本文使用Matlab2016a)
3. mlab-1.1.4
-- 下載地址:連結:http://pan.baidu.com/s/1bQC2j8 密碼:7npg
4. pywin32-220.win-amd64-py2.7(此處注意要與python的版本一致)
-- 下載地址:連結:http://pan.baidu.com/s/1eRPi2Ca 密碼:1mqr 二、環境搭建
1. 安裝Matlab、Anaconda2(這裡主要是搭建python環境),此部分本文不做詳細介紹。
2. mlab的安裝與配置:
-- mlab檔案結構:主要包括[mlab.egg-info] [src] [setup.py]
-- 將mlab檔案下的相關檔案拷貝到python.exe相同的根目錄下(此步驟是因為本人的電腦上安裝了2個版本的python,在cmd或者powershell下輸入python調用的不是繼承環境Anaconda2下的python)
-- 執行【.\python.exe .\setup.py install】開始安裝,結果如下所示:
3. pywin32-220.win-amd64-py2.7的安裝:
-- 執行【pywin32-220.win-amd64-py2.7.exe】
-- 程式自動產生路徑,如下所示:
-- 然後直接下一步,直到安裝完成。
三、舉例說明:
1. matlab代碼:【get_sum.m】
function sum_AB = get_sum(a,b) sum_AB = double(a + b);end
2. python代碼:【pythonMatlab.py】
# -*- coding: utf-8 -*-from mlab.releases import latest_release as matlabmatlab.path(matlab.path(),r'C:\Users\Administrator\Desktop\Python_Matlab') #設定路徑def mainFunction(): a = int(1) b = int(2) result = matlab.get_sum(a, b) # 調用matlab的函數 print result #=======================================if __name__ == '__main__': print 'running...' mainFunction()
3. 在python目錄下執行:
-- 使用【powershell】進入python.exe的根目錄下:C:\Program Files\Anaconda2
-- 執行python檔案:.\python.exe .\pythonMatlab.py
-- 結果如下所示:
--------------------------------
後續將考慮介紹一個更具體的應用(Face Service):
1. Matlab訓練好神經網路,並且提供函數介面(包括接受兩張不同的圖片),並返回結果。
2. Python調用OpenCV實現人臉裁剪,並調用matlab提供的.m檔案。
3. 顯示結果:這兩張人臉是否屬於同一個人。
--------------------------------