web-dev-qa-db-ja.com

Python内からMATLABコードを実行する方法

Pythonを使用してMATLABコードを実行しようとしています(python 3.6を使用しています)。

引数を渡したり、出力を取得したりする必要はありません。 PythonにMATLABコードを実行するだけのコード行が必要です。

オンラインでmatlabrootを使用し、コマンドプロンプトでそれを使用してなんらかのエンジンをインストールするように言ういくつかの回答を見ましたが、Pythonバージョンが古すぎませんでした(意味がありません)。

より簡単なバージョンまたはこれを行うための別の方法はありますか?

ありがとう!

9
Julian

Oct2Pyを使用

最初のオプションは、Matlabファイルと関数を実行できる無料のオープンソースプログラム Octave で実行されるOct2Pyを使用することです。次のターミナルコマンドでインストールしてください:

pip3 install oct2py

次に、次のようなPythonスクリプトからMatLabコードを実行できます。

from oct2py import Oct2Py
oc = Oct2Py()


script = "function y = myScript(x)\n" \
         "    y = x-5" \
         "end"

with open("myScript.m","w+") as f:
    f.write(script)

oc.myScript(7)

MatLabを使用する

オリジナルのMatLabエンジンを使用する場合は、次の手順に従う必要があります。

1。 MatLabライブラリのインストール

このページ の指示に従って、MatLabを開いてコマンドmatlabrootを実行し、MatLabルートフォルダーを見つける必要があります。これにより、Matlabのルートフォルダーが表示されます。

次に、ターミナルを開きます(Windowsを使用している場合は、Windows + R、次にcmdと入力し、Enterを押します。)ターミナルで、次のコードを実行します。

cd matlabroot\extern\engines\python

Matlabrootを今見つけたパスに置き換えてください。次に、実行します

python3 setup.py install

MatLab Pythonライブラリをインストールするには。

2。 MatLabライブラリの使用

このページ の指示に従ってください

import matlab.engine

eng = matlab.engine.start_matlab()
tf = eng.isprime(37)
print(tf)

スクリプト全体 を実行する場合は、スクリプトをMatLab * .mファイルとして現在のフォルダーに保存し、次のように実行できます。

import matlab.engine
eng = matlab.engine.start_matlab()
eng.myMatlabFile(nargout=0)

PythonからMatLabファイルを作成することもできます。

import matlab.engine

script = "b = 5;\n" \
         "h = 3;\n" \
         "a = 0.5*(b.* h)"

with open("myScript.m","w+") as f:
    f.write(script)

eng = matlab.engine.start_matlab()
eng.myScript(nargout=0)

これが役に立てば幸いです:)

13
pascscha