友人から、いくつかの入力を受け入れ、それらをMATLABに送信して数値を計算し、結果を出力する小さなWebインターフェイスの作成について尋ねられました。私はPython/Djangoの開発者であるため、Webインターフェイスを処理できますが、MATLABに関しては無知です。具体的には:
ctypes
を使用してコマンドを操作するかを検討する必要がありますか?これを実現する方法に関する提案、ヒント、またはトリックはありますか?
python-matlab bridge があります。これは、Matlabがサーバーとしてバックグラウンドで実行されるという意味でユニークであるため、Matlab関数を呼び出すたびに起動コストがかかりません。
ダウンロードと次のコードと同じくらい簡単です。
from pymatbridge import Matlab
mlab = Matlab(matlab='/Applications/MATLAB_R2011a.app/bin/matlab')
mlab.start()
res = mlab.run('path/to/yourfunc.m', {'arg1': 3, 'arg2': 5})
print res['result']
yourfunc.mの内容は次のようになります。
%% MATLAB
function lol = yourfunc(args)
arg1 = args.arg1;
arg2 = args.arg2;
lol = arg1 + arg2;
end
mlabwrap を見てください。これにより、python APIを介してMatlabを呼び出すことができます。
別の方法として、Matlab R2014b以降、Pythonライブラリが提供され、Python MATLAB Engine API for Python を使用してMatlabを呼び出すことができます。 。
OSの互換性に関しては、Linux用のmatlabバージョンを使用する場合、Windowsで記述されたスクリプトは変更なしで機能するはずです。可能であれば、Pythonですべてを実行する可能性も検討してください。 Matplotlibを使用したScipy/numpyは、Matlabの完全な代替品を提供します。