タスク: Windows 7 (すべて x64) で Python 3.x を使用して、Matlab 2013b から関数を呼び出します。
質問: それを可能にする Python パッケージはありますか?
私はすでに試しました:
- mlabwrap
- python-matlab-ブリッジ
- パイマトラブ
しかし、これらはどれも上記の構成では機能しません。
Python 3.x を使用した動作構成に関する情報を歓迎します。
詳細な情報が必要な場合は、お知らせください。
更新: 私は現在、Matlab2011b と Pyhton 2.7 を使用してこれを機能させようとしています。これらは最も使用されているバージョンのようです。今のところ、私は次のことで立ち往生しています:
問題なくモジュールをインポートできますが、セッションを開始するとすぐに、 Matlab コマンド ウィンドウがポップアップし、他に何も起こりません。Python ウィンドウには次のように表示されます。
Starting MATLAB on ZMQ socket tcp://127.0.0.1:55555
Send 'exit' command to kill the server
............................................................Matlab session timed
out after 60 seconds
MATLAB failed to start
Press any key to continue . . .
これは毎回発生し、エラーは発生しません。
mlabwrapこのガイドを使用して mlabwrap をインストールしようとしました。「python setup.py install」と入力すると、Matlab コマンド ウィンドウがポップアップし、再び何も起こりません。コマンド ウィンドウを閉じると、Python の出力に次のように表示されます。
WINDOWS SPECIFIC ISSUE? Unable to remove c:\users\martin\appdata\local\temp\tmp1
y2kdk; please delete it manually
[Error 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem ande
ren Prozess verwendet wird: 'c:\\users\\martin\\appdata\\local\\temp\\tmp1y2kdk'
INSTALL ABORT: 'matlab -nodesktop -nosplash -wait -r "fid = fopen(\'c:\\users\\m
artin\\appdata\\local\\temp\\tmp1y2kdk\', \'wt\');fprintf(fid, \'%s%c%s%c%s%c\',
version, 10, matlabroot, 10, computer, 10);fclose(fid); quit"' RETURNED ERROR C
ODE -805306369
PLEASE MAKE SURE matlab IS IN YOUR PATH!
私%Path%はこのように見えます(重要な部分のみ;):
D:\MATLAB\R2011b\bin;C:\Program Files\ZeroMQ 4.0.4\lib;D:\Python27;D:\Python27\scripts;D:\MATLAB\R2011b\runtime\win64;D:\MATLAB\R2011b\extern\lib\win64\microsoft;D:\MATLAB\R2011b\bin\win64
Windows で Matlab と Python を接続するための助けをいただければ幸いです。これが機能していない理由が本当にわかりません...
Update2: 今すぐ mlabwrap をインストールできますが、起動できません。mlabwrap をインポートしようとすると、Matlab コマンド ウィンドウが開き、1 分後に閉じます。Python の出力は次のとおりです。
>>> import mlabwrap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python27\lib\site-packages\mlabwrap.py", line 645, in <module>
mlab = MlabWrap()
File "D:\Python27\lib\site-packages\mlabwrap.py", line 405, in __init__
self._session = mlabraw.open(os.getenv("MLABRAW_CMD_STR", ""))
mlabraw.error: Unable to start MATLAB(TM) engine
Matlab の engdemo が機能していることを再確認しました。