仕事でMATLABを使うようになりいろいろ調べていくうちに、MATLABからPythonのライブラリを呼び出したり、PythonからMATLABを呼び出したりできると知って、非常に驚いた。MATLABをベースにPythonのライブラリを使いながらTrading Systemの開発を行うことができれば、いろいろなアイデアが試せそうだ。書籍「Python for MATLAB Development」を読み進めながら、いろいろな可能性を探ってみたい。
MATLABからPythonのライブラリにアクセスするには、MATLABのterminalからpythonの環境をpyenvコマンドで設定する。
>> pyenv('Version','C:\Users\neoclassicalstudy\.conda\envs\matpy\python.exe') ans = PythonEnvironment with properties: Version: "3.10" Executable: "C:\Users\neoclassicalstudy\.conda\envs\matpy\python.exe" Library: "C:\Users\neoclassicalstudy\.conda\envs\matpy\python310.dll" Home: "C:\Users\neoclassicalstudy\.conda\envs\matpy" Status: NotLoaded ExecutionMode: InProcess
python環境設定後、MATLABのterminalからある種の規則に従ってpythonのcodeを書けば、MATLABからpythonが実行可能。
res = py.list({‘Name1′,’Name2′,’Name3’})
res =
Python list with values:
['Name1', 'Name2', 'Name3']
Use string, double or cell function to convert to a MATLAB array.
res.append(‘Name4’)
res
res =
Python list with values:
['Name1', 'Name2', 'Name3', 'Name4']
Use string, double or cell function to convert to a MATLAB array.
PythonからMATLABを動かすには、pythonにmatlabengineをインストールする。仮想環境にインストールすれば、問題が起きた時にも対処しやすいだろう。MATLABとmatlabengineとのversionの整合が必要。以下のようなコードでMATLABの関数を呼び出すことができる。