如何在Python上运行MATLAB代码

时间:2018-07-18 15:55:01

标签: python matlab

我正在尝试使用Python运行MATLAB代码(我正在使用python 3.6)。我不需要传递任何参数或获取任何输出。我只需要Python上的一行代码即可简单地运行MATLAB代码。我在网上看到了一些答案,说要使用matlabroot并在命令提示符下使用它来安装某种引擎,但是它说我无法安装它,因为我的Python版本基本上还不够旧(这没有任何意义)。有更简单的版本还是另一种方式?

谢谢!

1 个答案:

答案 0 :(得分:6)

使用Oct2Py

您的第一个选择是使用运行Octave的Oct2Py,它是一个免费的开源程序,可以运行Matlab文件和功能。只需使用以下终端命令安装它即可:

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库

按照this page的说明,您首先必须打开MatLab并运行命令matlabroot来找到MatLab根文件夹。这应该给您Matlab的根文件夹。

然后打开终端(如果使用Windows,则可以按Windows + R,然后键入cmd,然后按Enter。)在终端中,运行以下代码:

cd matlabroot\extern\engines\python

确保用刚刚找到的路径替换matlabroot。然后运行

python3 setup.py install

要安装MatLab Python库。

2。使用MatLab库

按照this page的说明进行操作

import matlab.engine

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

如果要运行entire scripts,可以将脚本另存为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)

我希望这会有所帮助:)