PythonからMatlabの関数を呼び出す
matlab.engineのインストール
管理者権限で起動したコマンドプロンプトで以下を実行
cd "C:\Program Files\MATLAB\R2016a\extern\engines\python\" C:\Python34\python.exe "C:\Program Files\MATLAB\R2016a\extern\engines\python\setup.py" install
なぜか「ImportError: No module named 'matlab'」
実行するとこんなエラーに。
ImportError: No module named 'matlab'
matlab.engineは以下にあります。
C:\Python34\Lib\site-packages\matlab\engine
解決策1 環境変数でPYTHONPATHを指定して実行する
C:\Program Files\MATLAB\R2016a\extern\engines\python>SET PYTHONPATH="C:\Python34\Lib\site-packages" C:\Program Files\MATLAB\R2016a\extern\engines\python>"C:\Python34\python.exe" "C:\Users\Cucco\Documents\MATLAB\matengen.py" [[1.0,2.0,3.0,4.0,5.0]]
解決策2 実行する.pyファイルの中でパスを記載する
# -*- coding: utf-8 import sys sys.path.append('C:\Python34\Lib\site-packages') import matlab.engine eng = matlab.engine.start_matlab() a = matlab.double([1,4,9,16,25]) b = eng.sqrt(a) print(b)
実行結果
C:\Python34>C:\Users\Cucco\Documents\MATLAB\matengen.py [[1.0,2.0,3.0,4.0,5.0]]