2

タスク: 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 が機能していることを再確認しました。

4

1 に答える 1

1

python-matlab-bridgeを使用して動作するようになりました。手動で Python3 に変換し、変更が公式リポジトリにマージされたので、すぐに使用できるはずです。

「messenger init」が見つからないというエラーが表示された場合Lib\site-packages\pymatbridge\matlabは、PATH.

質問や追加情報がある場合は、この回答に自由にコメントしてください。ユーザーが python-matlab-bridge を使い始めるのに役立つように追加します。

于 2014-04-15T09:21:49.303 に答える