python - 如何在 Python 中运行 MATLAB 代码
问题描述
我正在尝试使用 Python 运行 MATLAB 代码(我使用的是 python 3.6)。
我不需要传递任何参数或获得任何输出。我只需要 Python 上的一行代码,它会简单地运行 MATLAB 代码。
我在网上看到一些答案说matlabroot
在命令提示符下使用和使用它来安装某种引擎,但它说我无法安装它,因为我的 Python 版本不够旧(这没有意义)。
有没有更简单的版本或只是另一种方法来做到这一点?
谢谢!
解决方案
使用 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 库
按照此页面的说明,您首先必须通过打开 MatLab 并运行命令来找到您的 MatLab 根文件夹matlabroot
。这应该为您提供 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) # Expects a file named myMatlabFile.m in the same directory
您还可以从 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)
我希望这有帮助 :)
推荐阅读
- tensorflow - TensorBoard 2.0.0 不更新火车标量
- markdown - R markdown 文本和代码中的双空格问题
- javascript - Magento 2 中未定义 jQuery
- javascript - 如何将几个 HTML 文件加载为“文档”,然后使用 Javascript 操作它们?
- python - python字典参数到带有烧瓶模板的JS字典
- angular - Angular 5:如何在不同的组件中使用一个表单组?
- packet - 一旦满足条件,我想在连续嗅探时停止数据包捕获
- angular - Angular7在运行下一个函数之前接收API数据
- javascript - 评估问题的顺序反应本机与浏览器
- plc - SCL 代码:标签 FUNCTION 未在 TIA 上定义