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