本文将向您展示如何一起(和平且和谐地!)使用MATLAB和Python。我们将假定您使用这两种语言的初学者背景,并提供指向更高级主题的链接。
两种语言各自有非常出色的算法,因此可以共享案例。例如,MATLAB和Python用于构建此空气质量预测应用程序和情感分析算法。两种语言经常一起用于AI应用程序(以至于通过MATLAB,ONNX和TensorFlow进行深度学习网络的直接导入和导出)。
基础
首先,让我们忘记需求。我们需要最新版本的Python,以及MATLAB R2014b以上版本(听起来是升级到R2020a的好时机!)。检查这里的版本细节,并且当然我们还要确保MATLAB和Python的路径设置,以便MATLAB和Python都可以访问我们的代码。
从MATLAB中调用Python
在深入研究之前,我们先要确认MATLAB可以找到Python解释器。使用pyenv函数在MATLAB中执行此操作:
>> pyenv
ans =
PythonEnvironment with properties:
Version: "3.6"
Executable: "C:\Python36\WPy-3670\python-3.6.7.amd64\python.EXE"
Library: "C:\Python36\WPy-3670\python-3.6.7.amd64\python36.dll"
Home: "C:\Python36\WPy-3670\python-3.6.7.amd64"
Status: Loaded
ExecutionMode: OutOfProcess
ProcessID: "20980"
ProcessName: "MATLABPyHost"
这里会返回Python版本和环境设置,当然我们可以通过
现在我们就可以访问Python了!
可以试着从math库中获取sqrt函数,以解决问题。在Python中,我们这样调用它:
>>> import math
>>> math.sqrt(42)
6.48074069840786
要从MATLAB调用相同的Python函数,我们可以使用以下代码:
>> py.math.sqrt(42)
ans =
6.480740698407860
我们使用 format long 来设置在MATLAB和Python中显示相同的精度。
现在,让我们抽象一下上述语法规则:使用以下语法访问Python的模块和函数:
>> py.module_name.function_name
用户定义的模块也是以相同的方式调用。例如,空气质量应用程序中的weather.py模块包含一些功能,这些功能可通过网络API读取给定位置的天气数据:
>> data = py.weather.get_current_weather("Boston","US",key)
data =
Python dict with no properties.
{'coord': {'lon