目標:MatlabからPythonの関数を呼び出せるようにする
はじめに
- 本稿は自分自身の覚書として作成した
- 本文中の各サイトを参考にしながら、一連の流れがわかるように手順を残す
- 各サイトから有力な情報を得られました。大変感謝です
手順
1. Pythonをインストール
2. 外部パッケージをインストール
3. Matlabから外部パッケージをインポート
4. Matlabでパッケージを呼び出し、テスト実行
動作環境
項目 | 条件 |
---|---|
OS | windows10 64 bit |
Matlab | version 2024a |
Python | version 3.11 |
1. Pythonをインストール
- MatlabのバージョンにあったPythonをダウンロードする(下記リンク参照)
https://jp.mathworks.com/support/requirements/python-compatibility.html
下記の参考リンクをもとに、Python仮想環境を構築する
- ダウンロードが終わったら、Pythonをインストールする
- コマンドプロンプトで下記コマンドを実行し、仮想環境を構築する
コマンドプロンプト
cd (保存したい場所)
python -m venv (仮想環境を保存するフォルダの名前) # 仮想環境を構築
参考リンク: https://campkougaku.com/2022/12/29/spyder_in_nonanaconda/
2. 外部パッケージをインストール
- 1章で構築した仮想環境に、外部パッケージをインストールする
- コマンドプロンプトで下記コマンドを実行
コマンドプロンプト
% 仮想環境の呼び出し
cd (仮想環境を構築したフォルダの場所)
Scripts\activate.bat
# 仮想環境へ外部パッケージをインストール
pip install --upgrade pip
pip install numpy # インストールしたいパッケージ名を入力
pip install opencv-python # インストールしたいパッケージ名を入力
pip install matplotlib # インストールしたいパッケージ名を入力
3. Matlabから外部パッケージをインポート
- Matlabを実行
- Matlabが自動でPythonのインタープリターを検出するが、自分で作った仮想環境を指定する必要があるので、下記コマンドを実行
matlab
% pythonインタープリタの設定
pyenv
% 上記コマンドでVersion情報に違いがあれば、下記コマンドで正しい場所を設定
pyenv("Version", "(仮想環境の保存場所)\Scripts\python.EXE");
- 下記コマンドでPython関数を実行し、動作チェック
- エラーがなければ設定完了
matlab
% Python関数の呼び出しテスト
py.list({'This','is a','list'});
myList = pyrun("l = ['A', 'new', 'list']", "l");
4. Matlabでパッケージを呼び出し、テスト実行
- 以下の構文で外部パッケージをMatlab上に呼び出せる ※このとき、パッケージは事前に、2章で説明した方法に従い、インストールすること
matlab
% 外部パッケージのインポート
np = py.importlib.import_module('numpy');
cv = py.importlib.import_module('cv2');
plt = py.importlib.import_module('matplotlib.pyplot');
- 外部パッケージのテスト実行を行う
matlab
% 外部パッケージのテスト実行
% cv2 を import して、imread する
cv = py.importlib.import_module('cv2');
array = cv.imread("(フルパス)\images.jpg");
% ndarray型をmatlabデータ型に変換
img = uint8(array);
imshow(img);